[INFO] cloning repository https://github.com/Karribalu/r-dash [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Karribalu/r-dash" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKarribalu%2Fr-dash", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKarribalu%2Fr-dash'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] de3c48218d0d03a4298c4b8046625ced4882d48d [INFO] checking Karribalu/r-dash against try#c8085cfed34c45021fc8f66d073f6394b3e35431 for pr-148939 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKarribalu%2Fr-dash" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Karribalu/r-dash [INFO] finished tweaking git repo https://github.com/Karribalu/r-dash [INFO] tweaked toml for git repo https://github.com/Karribalu/r-dash written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Karribalu/r-dash on toolchain c8085cfed34c45021fc8f66d073f6394b3e35431 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c8085cfed34c45021fc8f66d073f6394b3e35431" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Karribalu/r-dash 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" "+c8085cfed34c45021fc8f66d073f6394b3e35431" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: profile.dev.rustc [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded syn v2.0.77 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+c8085cfed34c45021fc8f66d073f6394b3e35431" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 070a3c654b82ef33c08c6c43b0f9030a7e90d9022fd2485ffc563932442262db [INFO] running `Command { std: "docker" "start" "-a" "070a3c654b82ef33c08c6c43b0f9030a7e90d9022fd2485ffc563932442262db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "070a3c654b82ef33c08c6c43b0f9030a7e90d9022fd2485ffc563932442262db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "070a3c654b82ef33c08c6c43b0f9030a7e90d9022fd2485ffc563932442262db", kill_on_drop: false }` [INFO] [stdout] 070a3c654b82ef33c08c6c43b0f9030a7e90d9022fd2485ffc563932442262db [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+c8085cfed34c45021fc8f66d073f6394b3e35431" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e098d19c7cbcfeb2d403b007a4dc7aa780f6d61207da1af46aeed25ef575562f [INFO] running `Command { std: "docker" "start" "-a" "e098d19c7cbcfeb2d403b007a4dc7aa780f6d61207da1af46aeed25ef575562f", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: profile.dev.rustc [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Checking r-dash v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::BitAnd` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ops::BitAnd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/extendable_hashing/directory.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::extendable_hashing::bucket::meta_hash` [INFO] [stdout] --> src/extendable_hashing/table.rs:658:9 [INFO] [stdout] | [INFO] [stdout] 658 | use crate::extendable_hashing::bucket::meta_hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::extendable_hashing::table::Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:659:9 [INFO] [stdout] | [INFO] [stdout] 659 | use crate::extendable_hashing::table::Table; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `K_MASK`, `K_NUM_BUCKET`, and `K_STASH_BUCKET` [INFO] [stdout] --> src/extendable_hashing/table.rs:660:37 [INFO] [stdout] | [INFO] [stdout] 660 | use crate::extendable_hashing::{K_MASK, K_NUM_BUCKET, K_STASH_BUCKET}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::hashing::calculate_hash` [INFO] [stdout] --> src/extendable_hashing/table.rs:661:9 [INFO] [stdout] | [INFO] [stdout] 661 | use crate::utils::hashing::calculate_hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::pair::Key` [INFO] [stdout] --> src/extendable_hashing/table.rs:662:9 [INFO] [stdout] | [INFO] [stdout] 662 | use crate::utils::pair::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/extendable_hashing/table.rs:663:9 [INFO] [stdout] | [INFO] [stdout] 663 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/extendable_hashing/table.rs:664:9 [INFO] [stdout] | [INFO] [stdout] 664 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/extendable_hashing/table.rs:665:9 [INFO] [stdout] | [INFO] [stdout] 665 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::SystemTime` [INFO] [stdout] --> src/extendable_hashing/table.rs:666:9 [INFO] [stdout] | [INFO] [stdout] 666 | use std::time::SystemTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/extendable_hashing/mod.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | ... 'REINSERT: { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(let_chains)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0635]: unknown feature `integer_atomics` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(integer_atomics)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::BitAnd` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::ops::BitAnd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/extendable_hashing/directory.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/extendable_hashing/mod.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | ... 'REINSERT: { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `new` has an incompatible type for trait [INFO] [stdout] --> src/extendable_hashing/mod.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | fn new() -> Self { [INFO] [stdout] | ^^^^ expected `()`, found `ExtendableHashing` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/hash.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | fn new(); [INFO] [stdout] | ^ [INFO] [stdout] = note: expected signature `fn() -> ()` [INFO] [stdout] found signature `fn() -> ExtendableHashing` [INFO] [stdout] help: change the output type to match the trait [INFO] [stdout] | [INFO] [stdout] 30 - fn new() -> Self { [INFO] [stdout] 30 + fn new() -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `insert` has an incompatible type for trait [INFO] [stdout] --> src/extendable_hashing/mod.rs:39:41 [INFO] [stdout] | [INFO] [stdout] 39 | fn insert(&mut self, key: T, value: ValueT) { [INFO] [stdout] | ^^^^^^ expected `[u8]`, found `Vec` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/hash.rs:4:41 [INFO] [stdout] | [INFO] [stdout] 4 | fn insert(&mut self, key: T, value: [u8]); [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: expected signature `fn(&mut ExtendableHashing<_>, _, [u8])` [INFO] [stdout] found signature `fn(&mut ExtendableHashing<_>, _, Vec)` [INFO] [stdout] help: change the parameter type to match the trait [INFO] [stdout] | [INFO] [stdout] 39 - fn insert(&mut self, key: T, value: ValueT) { [INFO] [stdout] 39 + fn insert(&mut self, key: T, value: [u8]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | pub key: Key, [INFO] [stdout] | ^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(let_chains)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0635]: unknown feature `integer_atomics` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(integer_atomics)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn new(key: Key, value: ValueT) -> Self { [INFO] [stdout] | ^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 35 | impl Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | dir: Directory, // Yet to be implemented [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `new` has an incompatible type for trait [INFO] [stdout] --> src/extendable_hashing/mod.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | fn new() -> Self { [INFO] [stdout] | ^^^^ expected `()`, found `ExtendableHashing` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/hash.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | fn new(); [INFO] [stdout] | ^ [INFO] [stdout] = note: expected signature `fn() -> ()` [INFO] [stdout] found signature `fn() -> ExtendableHashing` [INFO] [stdout] help: change the output type to match the trait [INFO] [stdout] | [INFO] [stdout] 30 - fn new() -> Self { [INFO] [stdout] 30 + fn new() -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `insert` has an incompatible type for trait [INFO] [stdout] --> src/extendable_hashing/mod.rs:39:41 [INFO] [stdout] | [INFO] [stdout] 39 | fn insert(&mut self, key: T, value: ValueT) { [INFO] [stdout] | ^^^^^^ expected `[u8]`, found `Vec` [INFO] [stdout] | [INFO] [stdout] note: type in trait [INFO] [stdout] --> src/hash.rs:4:41 [INFO] [stdout] | [INFO] [stdout] 4 | fn insert(&mut self, key: T, value: [u8]); [INFO] [stdout] | ^^^^ [INFO] [stdout] = note: expected signature `fn(&mut ExtendableHashing<_>, _, [u8])` [INFO] [stdout] found signature `fn(&mut ExtendableHashing<_>, _, Vec)` [INFO] [stdout] help: change the parameter type to match the trait [INFO] [stdout] | [INFO] [stdout] 39 - fn insert(&mut self, key: T, value: ValueT) { [INFO] [stdout] 39 + fn insert(&mut self, key: T, value: [u8]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | pub key: Key, [INFO] [stdout] | ^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | fn hash(&self, state: &mut H) { [INFO] [stdout] | ^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 52 | impl Hash for Table { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | new_bucket: &mut Table, [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn new(key: Key, value: ValueT) -> Self { [INFO] [stdout] | ^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 35 | impl Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `hash` exists for struct `Vec>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | self.bucket.hash(state); [INFO] [stdout] | ^^^^ method cannot be called on `Vec>` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/bucket.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Bucket { [INFO] [stdout] | ------------------------------- doesn't satisfy `Bucket: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Bucket: std::hash::Hash` [INFO] [stdout] which is required by `Vec>: std::hash::Hash` [INFO] [stdout] `Bucket: std::hash::Hash` [INFO] [stdout] which is required by `[Bucket]: std::hash::Hash` [INFO] [stdout] help: consider annotating `Bucket` with `#[derive(Hash)]` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Hash)] [INFO] [stdout] 24 | pub struct Bucket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Option>]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:547:70 [INFO] [stdout] | [INFO] [stdout] 547 | let current_pair: Pair = current_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Option>]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/extendable_hashing/table.rs:547:49 [INFO] [stdout] | [INFO] [stdout] 547 | let current_pair: Pair = current_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:561:57 [INFO] [stdout] | [INFO] [stdout] 561 | ... current_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:578:36 [INFO] [stdout] | [INFO] [stdout] 578 | invalid_buckets.append(invalid_mask); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `&mut Vec`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut Vec` [INFO] [stdout] found type `{integer}` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/alloc/src/vec/mod.rs:2728:11 [INFO] [stdout] help: you might have meant to use `push` [INFO] [stdout] | [INFO] [stdout] 578 - invalid_buckets.append(invalid_mask); [INFO] [stdout] 578 + invalid_buckets.push(invalid_mask); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:584:35 [INFO] [stdout] | [INFO] [stdout] 584 | let mask = get_bitmap(curr_stash_bucket); [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^ expected `u32`, found `&mut Bucket` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected type `u32` [INFO] [stdout] found mutable reference `&mut Bucket` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/extendable_hashing/bucket.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | pub fn get_bitmap(var: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ -------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Option>]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:588:73 [INFO] [stdout] | [INFO] [stdout] 588 | let current_pair: Pair = curr_stash_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Option>]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/extendable_hashing/table.rs:588:49 [INFO] [stdout] | [INFO] [stdout] 588 | let current_pair: Pair = curr_stash_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:602:60 [INFO] [stdout] | [INFO] [stdout] 602 | ... curr_stash_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:614:72 [INFO] [stdout] | [INFO] [stdout] 614 | ... curr_stash_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:616:41 [INFO] [stdout] | [INFO] [stdout] 613 | ... target.unset_indicator( [INFO] [stdout] | --------------- arguments to this method are incorrect [INFO] [stdout] ... [INFO] [stdout] 616 | ... i, [INFO] [stdout] | ^ expected `u64`, found `usize` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/extendable_hashing/bucket.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn unset_indicator( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pos: u64, [INFO] [stdout] | -------- [INFO] [stdout] help: you can convert a `usize` to a `u64` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 616 | i.try_into().unwrap(), [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:636:36 [INFO] [stdout] | [INFO] [stdout] 636 | invalid_buckets.append(invalid_mask); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `&mut Vec`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut Vec` [INFO] [stdout] found type `{integer}` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/alloc/src/vec/mod.rs:2728:11 [INFO] [stdout] help: you might have meant to use `push` [INFO] [stdout] | [INFO] [stdout] 636 - invalid_buckets.append(invalid_mask); [INFO] [stdout] 636 + invalid_buckets.push(invalid_mask); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: std::hash::Hash` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:40:39 [INFO] [stdout] | [INFO] [stdout] 40 | let key_hash = calculate_hash(&key); [INFO] [stdout] | -------------- ^^^^ the trait `std::hash::Hash` is not implemented for `T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/hash/mod.rs:186:0 [INFO] [stdout] | [INFO] [stdout] = note: this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: src/hash.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub trait Hash { [INFO] [stdout] | ----------------- this is the trait that was imported [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] note: required by a bound in `calculate_hash` [INFO] [stdout] --> src/utils/hashing.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn calculate_hash(t: &T) -> usize { [INFO] [stdout] | ^^^^ required by this bound in `calculate_hash` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `hash` exists for struct `Vec>`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/table.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | self.bucket.hash(state); [INFO] [stdout] | ^^^^ method cannot be called on `Vec>` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/bucket.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Bucket { [INFO] [stdout] | ------------------------------- doesn't satisfy `bucket::Bucket: std::hash::Hash` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `bucket::Bucket: std::hash::Hash` [INFO] [stdout] which is required by `Vec>: std::hash::Hash` [INFO] [stdout] `bucket::Bucket: std::hash::Hash` [INFO] [stdout] which is required by `[bucket::Bucket]: std::hash::Hash` [INFO] [stdout] help: consider annotating `bucket::Bucket` with `#[derive(Hash)]` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 + #[derive(Hash)] [INFO] [stdout] 24 | pub struct Bucket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:65 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | -------- ^^^^ no implementation for `T == T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key::::new` [INFO] [stdout] --> src/utils/pair.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl Key { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Key::::new` [INFO] [stdout] 10 | pub fn new(key: &T) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | -------- ^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key::::new` [INFO] [stdout] --> src/utils/pair.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | impl Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key::::new` [INFO] [stdout] 10 | pub fn new(key: &T) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key` [INFO] [stdout] --> src/utils/pair.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:48:41 [INFO] [stdout] | [INFO] [stdout] 48 | let response = target_table.insert(key, value.clone(), key_hash, meta_hash); [INFO] [stdout] | ^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `hash::Hash` defines an item `insert`, perhaps you need to implement it [INFO] [stdout] --> src/hash.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub trait Hash { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:68 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Option>]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:547:70 [INFO] [stdout] | [INFO] [stdout] 547 | let current_pair: Pair = current_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Option>]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/extendable_hashing/table.rs:547:49 [INFO] [stdout] | [INFO] [stdout] 547 | let current_pair: Pair = current_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:561:57 [INFO] [stdout] | [INFO] [stdout] 561 | ... current_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `release_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:60:46 [INFO] [stdout] | [INFO] [stdout] 60 | ... target_table.release_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:578:36 [INFO] [stdout] | [INFO] [stdout] 578 | invalid_buckets.append(invalid_mask); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `&mut Vec`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut Vec` [INFO] [stdout] found type `{integer}` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/alloc/src/vec/mod.rs:2728:11 [INFO] [stdout] help: you might have meant to use `push` [INFO] [stdout] | [INFO] [stdout] 578 - invalid_buckets.append(invalid_mask); [INFO] [stdout] 578 + invalid_buckets.push(invalid_mask); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `acquire_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:63:42 [INFO] [stdout] | [INFO] [stdout] 63 | ... target_table.acquire_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:584:35 [INFO] [stdout] | [INFO] [stdout] 584 | let mask = get_bitmap(curr_stash_bucket); [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^ expected `u32`, found `&mut Bucket` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected type `u32` [INFO] [stdout] found mutable reference `&mut bucket::Bucket` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/extendable_hashing/bucket.rs:479:8 [INFO] [stdout] | [INFO] [stdout] 479 | pub fn get_bitmap(var: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ -------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Option>]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:588:73 [INFO] [stdout] | [INFO] [stdout] 588 | let current_pair: Pair = curr_stash_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Option>]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/extendable_hashing/table.rs:588:49 [INFO] [stdout] | [INFO] [stdout] 588 | let current_pair: Pair = curr_stash_bucket.pairs[j].unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `split` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:64:59 [INFO] [stdout] | [INFO] [stdout] 64 | ... let new_bucket = target_table.split(key_hash).unwrap(); [INFO] [stdout] | ^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `split`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `BufRead` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:602:60 [INFO] [stdout] | [INFO] [stdout] 602 | ... curr_stash_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[u8]` cannot be indexed by `u32` [INFO] [stdout] --> src/extendable_hashing/table.rs:614:72 [INFO] [stdout] | [INFO] [stdout] 614 | ... curr_stash_bucket.finger_array[j], [INFO] [stdout] | ^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[u8]>` is not implemented for `u32` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `[u8]` to implement `Index` [INFO] [stdout] = note: 1 redundant requirement hidden [INFO] [stdout] = note: required for `[u8; 18]` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `release_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | ... target_table.release_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:616:41 [INFO] [stdout] | [INFO] [stdout] 613 | ... target.unset_indicator( [INFO] [stdout] | --------------- arguments to this method are incorrect [INFO] [stdout] ... [INFO] [stdout] 616 | ... i, [INFO] [stdout] | ^ expected `u64`, found `usize` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/extendable_hashing/bucket.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn unset_indicator( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pos: u64, [INFO] [stdout] | -------- [INFO] [stdout] help: you can convert a `usize` to a `u64` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 616 | i.try_into().unwrap(), [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:72 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/table.rs:636:36 [INFO] [stdout] | [INFO] [stdout] 636 | invalid_buckets.append(invalid_mask); [INFO] [stdout] | ------ ^^^^^^^^^^^^ expected `&mut Vec`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected mutable reference `&mut Vec` [INFO] [stdout] found type `{integer}` [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/alloc/src/vec/mod.rs:2728:11 [INFO] [stdout] help: you might have meant to use `push` [INFO] [stdout] | [INFO] [stdout] 636 - invalid_buckets.append(invalid_mask); [INFO] [stdout] 636 + invalid_buckets.push(invalid_mask); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `pow` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/extendable_hashing/mod.rs:111:34 [INFO] [stdout] | [INFO] [stdout] 111 | let current_capacity = 2.pow(global_depth); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: you must specify a concrete type for this numeric value, like `i32` [INFO] [stdout] | [INFO] [stdout] 111 | let current_capacity = 2_i32.pow(global_depth); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:29 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | dir: Directory::new(DEFAULT_CAPACITY, 0), [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: std::hash::Hash` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:40:39 [INFO] [stdout] | [INFO] [stdout] 40 | let key_hash = calculate_hash(&key); [INFO] [stdout] | -------------- ^^^^ the trait `std::hash::Hash` is not implemented for `T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/hash/mod.rs:186:0 [INFO] [stdout] | [INFO] [stdout] = note: this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: src/hash.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub trait Hash { [INFO] [stdout] | ----------------- this is the trait that was imported [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] note: required by a bound in `calculate_hash` [INFO] [stdout] --> src/utils/hashing.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn calculate_hash(t: &T) -> usize { [INFO] [stdout] | ^^^^ required by this bound in `calculate_hash` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Hash` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `clone` found for struct `Table` in the current scope [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:39 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^ method not found in `Table` [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/table.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ---------------------------------------------- method `clone` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `clone`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:31 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:52 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:45:65 [INFO] [stdout] | [INFO] [stdout] 45 | let target_table: &mut Table = &mut dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | -------- ^^^^ no implementation for `T == T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key::::new` [INFO] [stdout] --> src/utils/pair.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl Key { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Key::::new` [INFO] [stdout] 10 | pub fn new(key: &T) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:32 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | -------- ^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key::::new` [INFO] [stdout] --> src/utils/pair.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | impl Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key::::new` [INFO] [stdout] 10 | pub fn new(key: &T) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key` [INFO] [stdout] --> src/utils/pair.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:46:23 [INFO] [stdout] | [INFO] [stdout] 46 | let key = Key::new(&key); [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `insert` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:48:41 [INFO] [stdout] | [INFO] [stdout] 48 | let response = target_table.insert(key, value.clone(), key_hash, meta_hash); [INFO] [stdout] | ^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `hash::Hash` defines an item `insert`, perhaps you need to implement it [INFO] [stdout] --> src/hash.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub trait Hash { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:44 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:55 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `clone` found for struct `Table` in the current scope [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:43 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^ method not found in `Table` [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/table.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ---------------------------------------------- method `clone` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `clone`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:57:68 [INFO] [stdout] | [INFO] [stdout] 57 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:32 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:43 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ------------------------------- ^^^^^^^^^^ expected `Table`, found `&mut Table` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Table<_>` [INFO] [stdout] found mutable reference `&mut Table<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:59:64 [INFO] [stdout] | [INFO] [stdout] 59 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] 21 | pub key: Key, [INFO] [stdout] | ^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required for `Key` to implement `Debug` [INFO] [stdout] --> src/utils/pair.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ----- unsatisfied trait bound introduced in this `derive` macro [INFO] [stdout] = note: required for the cast from `&Key` to `&dyn Debug` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | Pair { key, value } [INFO] [stdout] | ^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 35 | impl Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `release_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:60:46 [INFO] [stdout] | [INFO] [stdout] 60 | ... target_table.release_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | let hello = old_value; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `acquire_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:63:42 [INFO] [stdout] | [INFO] [stdout] 63 | ... target_table.acquire_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `split` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:64:59 [INFO] [stdout] | [INFO] [stdout] 64 | ... let new_bucket = target_table.split(key_hash).unwrap(); [INFO] [stdout] | ^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `split`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `BufRead` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `release_locks` exists for mutable reference `&mut Table`, but its trait bounds were not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | ... target_table.release_locks(); [INFO] [stdout] | ^^^^^^^^^^^^^ method cannot be called on `&mut Table` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: the following trait bounds were not satisfied: [INFO] [stdout] `T: Clone` [INFO] [stdout] `T: Debug` [INFO] [stdout] `T: PartialEq` [INFO] [stdout] --> src/extendable_hashing/table.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | impl Table { [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^ -------- [INFO] [stdout] | | | | [INFO] [stdout] | | | unsatisfied trait bound introduced here [INFO] [stdout] | | unsatisfied trait bound introduced here [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:59 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the type `[Table]` cannot be indexed by `u64` [INFO] [stdout] --> src/extendable_hashing/mod.rs:67:72 [INFO] [stdout] | [INFO] [stdout] 67 | ... let new_table: Table = dir.segments[dir_index as u64 & TAIL_MASK]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize` [INFO] [stdout] | [INFO] [stdout] = help: the trait `SliceIndex<[Table]>` is not implemented for `u64` [INFO] [stdout] help: the following other types implement trait `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/bstr/traits.rs:203:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex` [INFO] [stdout] --> /rustc/c8085cfed34c45021fc8f66d073f6394b3e35431/library/core/src/slice/index.rs:214:0 [INFO] [stdout] | [INFO] [stdout] = note: `usize` implements `SliceIndex<[T]>` [INFO] [stdout] = note: required for `Vec>` to implement `Index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:36 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | ... if calculate_hash(target_table) != calculate_hash(&new_table) { [INFO] [stdout] | ^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 29 | impl Hash for ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0689]: can't call method `pow` on ambiguous numeric type `{integer}` [INFO] [stdout] --> src/extendable_hashing/mod.rs:111:34 [INFO] [stdout] | [INFO] [stdout] 111 | let current_capacity = 2.pow(global_depth); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: you must specify a concrete type for this numeric value, like `i32` [INFO] [stdout] | [INFO] [stdout] 111 | let current_capacity = 2_i32.pow(global_depth); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:37 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory` [INFO] [stdout] --> src/extendable_hashing/directory.rs:5:45 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:112:39 [INFO] [stdout] | [INFO] [stdout] 112 | let mut new_d: Directory = Directory::new(2 * current_capacity, self.dir.version + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Directory::::new` [INFO] [stdout] --> src/extendable_hashing/directory.rs:12:29 [INFO] [stdout] | [INFO] [stdout] 12 | impl Directory { [INFO] [stdout] | ^^^^^ required by this bound in `Directory::::new` [INFO] [stdout] 13 | pub fn new(capacity: usize, version: usize) -> Self { [INFO] [stdout] | --- required by a bound in this associated function [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `target` [INFO] [stdout] --> src/extendable_hashing/table.rs:324:21 [INFO] [stdout] | [INFO] [stdout] 263 | let target = &mut *buckets_ptr.add(bucket_index); [INFO] [stdout] | ------ move occurs because `target` has type `&mut Bucket`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 269 | insert_bucket = target; [INFO] [stdout] | ------ value moved here [INFO] [stdout] ... [INFO] [stdout] 324 | target, [INFO] [stdout] | ^^^^^^ value borrowed here after move [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/extendable_hashing/mod.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | fn delete(key: T) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/extendable_hashing/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | fn get(key: T, buff: &mut [u8]) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buff` [INFO] [stdout] --> src/extendable_hashing/mod.rs:90:20 [INFO] [stdout] | [INFO] [stdout] 90 | fn get(key: T, buff: &mut [u8]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_buff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `clone` found for struct `Table` in the current scope [INFO] [stdout] --> src/extendable_hashing/mod.rs:115:39 [INFO] [stdout] | [INFO] [stdout] 115 | new_ds[2 * i] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^ method not found in `Table` [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/table.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ---------------------------------------------- method `clone` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `clone`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:33 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0053, E0277, E0282, E0308, E0382, E0599, E0635, E0689. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0053`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `clone` found for struct `Table` in the current scope [INFO] [stdout] --> src/extendable_hashing/mod.rs:116:43 [INFO] [stdout] | [INFO] [stdout] 116 | new_ds[2 * i + 1] = old_ds[i].clone(); [INFO] [stdout] | ^^^^^ method not found in `Table` [INFO] [stdout] | [INFO] [stdout] ::: src/extendable_hashing/table.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ---------------------------------------------- method `clone` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `clone`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `Clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `T` with `T` [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `T == T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `PartialEq` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `T` doesn't implement `Debug` [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Debug` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `Table` [INFO] [stdout] --> src/extendable_hashing/table.rs:42:41 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Table { [INFO] [stdout] | ^^^^^ required by this bound in `Table` [INFO] [stdout] help: consider restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 94 | impl ExtendableHashing { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/extendable_hashing/mod.rs:119:43 [INFO] [stdout] | [INFO] [stdout] 119 | new_ds[2 * new_table_index + 1] = new_bucket; [INFO] [stdout] | ------------------------------- ^^^^^^^^^^ expected `Table`, found `&mut Table` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Table<_>` [INFO] [stdout] found mutable reference `&mut Table<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] 21 | pub key: Key, [INFO] [stdout] | ^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required for `pair::Key` to implement `Debug` [INFO] [stdout] --> src/utils/pair.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ----- unsatisfied trait bound introduced in this `derive` macro [INFO] [stdout] = note: required for the cast from `&pair::Key` to `&dyn Debug` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Clone` is not satisfied [INFO] [stdout] --> src/utils/pair.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | Pair { key, value } [INFO] [stdout] | ^^^ the trait `Clone` is not implemented for `T` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `pair::Key` [INFO] [stdout] --> src/utils/pair.rs:3:31 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Key { [INFO] [stdout] | ^^^^^ required by this bound in `Key` [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 35 | impl Pair { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hello` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | let hello = old_value; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_hello` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `r-dash` (bin "r-dash") due to 112 previous errors; 18 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/extendable_hashing/bucket.rs:549:17 [INFO] [stdout] | [INFO] [stdout] 549 | let mut cloned = Arc::clone(&bucket); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:548:13 [INFO] [stdout] | [INFO] [stdout] 548 | for i in 0..num_of_threads { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/extendable_hashing/bucket.rs:581:17 [INFO] [stdout] | [INFO] [stdout] 581 | let mut string = String::from(format!("let hash = calculate_hash(&key) {}", i)); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `success` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/bucket.rs:578:13 [INFO] [stdout] | [INFO] [stdout] 578 | let mut success = 0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_success` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `success` is never read [INFO] [stdout] --> src/extendable_hashing/bucket.rs:589:21 [INFO] [stdout] | [INFO] [stdout] 589 | success += 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/extendable_hashing/bucket.rs:654:17 [INFO] [stdout] | [INFO] [stdout] 654 | let mut string = String::from(format!("let hash = calculate_hash(&key) {}", i)); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `success` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/bucket.rs:650:13 [INFO] [stdout] | [INFO] [stdout] 650 | let mut success = 0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_success` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cloned_key` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:676:17 [INFO] [stdout] | [INFO] [stdout] 676 | let cloned_key = key_str.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cloned_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> src/extendable_hashing/bucket.rs:679:17 [INFO] [stdout] | [INFO] [stdout] 679 | let start = Instant::now(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `success` is never read [INFO] [stdout] --> src/extendable_hashing/bucket.rs:664:21 [INFO] [stdout] | [INFO] [stdout] 664 | success += 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/extendable_hashing/bucket.rs:704:17 [INFO] [stdout] | [INFO] [stdout] 704 | let mut string = String::from(format!("let hash = calculate_hash(&key) {}", i)); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `success` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/bucket.rs:700:13 [INFO] [stdout] | [INFO] [stdout] 700 | let mut success = 0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_success` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `success` is never read [INFO] [stdout] --> src/extendable_hashing/bucket.rs:714:21 [INFO] [stdout] | [INFO] [stdout] 714 | success += 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `target` [INFO] [stdout] --> src/extendable_hashing/table.rs:324:21 [INFO] [stdout] | [INFO] [stdout] 263 | let target = &mut *buckets_ptr.add(bucket_index); [INFO] [stdout] | ------ move occurs because `target` has type `&mut bucket::Bucket`, which does not implement the `Copy` trait [INFO] [stdout] ... [INFO] [stdout] 269 | insert_bucket = target; [INFO] [stdout] | ------ value moved here [INFO] [stdout] ... [INFO] [stdout] 324 | target, [INFO] [stdout] | ^^^^^^ value borrowed here after move [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/extendable_hashing/table.rs:678:13 [INFO] [stdout] | [INFO] [stdout] 678 | let mut table = Table::::new(0); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/extendable_hashing/table.rs:702:9 [INFO] [stdout] | [INFO] [stdout] 702 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/extendable_hashing/table.rs:733:13 [INFO] [stdout] | [INFO] [stdout] 733 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/extendable_hashing/table.rs:746:25 [INFO] [stdout] | [INFO] [stdout] 746 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `target_bucket` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:779:13 [INFO] [stdout] | [INFO] [stdout] 779 | let mut target_bucket = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_target_bucket` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `neighbor_bucket` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:780:13 [INFO] [stdout] | [INFO] [stdout] 780 | let mut neighbor_bucket = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_neighbor_bucket` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `next_neighbor_bucket` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:781:13 [INFO] [stdout] | [INFO] [stdout] 781 | let mut next_neighbor_bucket = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_next_neighbor_bucket` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prev_neighbor_bucket` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:782:13 [INFO] [stdout] | [INFO] [stdout] 782 | let mut prev_neighbor_bucket = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_prev_neighbor_bucket` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `stash_bucket` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:783:13 [INFO] [stdout] | [INFO] [stdout] 783 | let mut stash_bucket = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_stash_bucket` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `failed_count` is assigned to, but never used [INFO] [stdout] --> src/extendable_hashing/table.rs:784:13 [INFO] [stdout] | [INFO] [stdout] 784 | let mut failed_count = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_failed_count` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/extendable_hashing/table.rs:808:21 [INFO] [stdout] | [INFO] [stdout] 808 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `target_bucket` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:796:26 [INFO] [stdout] | [INFO] [stdout] 796 | 0 => target_bucket += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `neighbor_bucket` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:797:26 [INFO] [stdout] | [INFO] [stdout] 797 | 1 => neighbor_bucket += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `next_neighbor_bucket` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:798:26 [INFO] [stdout] | [INFO] [stdout] 798 | 2 => next_neighbor_bucket += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `prev_neighbor_bucket` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:799:26 [INFO] [stdout] | [INFO] [stdout] 799 | 3 => prev_neighbor_bucket += 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `stash_bucket` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:801:25 [INFO] [stdout] | [INFO] [stdout] 801 | stash_bucket += 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `failed_count` is never read [INFO] [stdout] --> src/extendable_hashing/table.rs:809:21 [INFO] [stdout] | [INFO] [stdout] 809 | failed_count += 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/extendable_hashing/mod.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | fn delete(key: T) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/extendable_hashing/mod.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | fn get(key: T, buff: &mut [u8]) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buff` [INFO] [stdout] --> src/extendable_hashing/mod.rs:90:20 [INFO] [stdout] | [INFO] [stdout] 90 | fn get(key: T, buff: &mut [u8]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_buff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0053, E0277, E0282, E0308, E0382, E0599, E0635, E0689. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0053`. [INFO] [stdout] [INFO] [stderr] error: could not compile `r-dash` (bin "r-dash" test) due to 112 previous errors; 39 warnings emitted [INFO] running `Command { std: "docker" "inspect" "e098d19c7cbcfeb2d403b007a4dc7aa780f6d61207da1af46aeed25ef575562f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e098d19c7cbcfeb2d403b007a4dc7aa780f6d61207da1af46aeed25ef575562f", kill_on_drop: false }` [INFO] [stdout] e098d19c7cbcfeb2d403b007a4dc7aa780f6d61207da1af46aeed25ef575562f