Skip to content

feat!: proof system v1 (from v0.1) #301

feat!: proof system v1 (from v0.1)

feat!: proof system v1 (from v0.1) #301

Triggered via pull request July 7, 2024 16:53
Status Failure
Total duration 6m 38s
Artifacts

coverage.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

1 error and 95 warnings
Code Coverage
Process completed with exit code 101.
Code Coverage
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Code Coverage
The following actions uses Node.js version which is deprecated and will be forced to run on node20: actions/checkout@v2. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
unused `std::result::Result` that must be used: /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/macros/mod.rs#L670
warning: unused `std::result::Result` that must be used --> grovedb/src/replication.rs:86:13 | 86 | / writeln!( 87 | | f, 88 | | " prefix:{:?} -> path:{:?}", 89 | | hex::encode(prefix), 90 | | metadata_path_str 91 | | ); | |_____________^ | = note: this `Result` may be an `Err` variant, which should be handled = note: `#[warn(unused_must_use)]` on by default = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info)
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L957
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:957:10 | 957 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L887
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:887:10 | 887 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
very complex type used. Consider factoring parts into `type` definitions: grovedb/src/lib.rs#L861
warning: very complex type used. Consider factoring parts into `type` definitions --> grovedb/src/lib.rs:861:10 | 861 | ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
length comparison to zero: grovedb/src/reference_path.rs#L222
warning: length comparison to zero --> grovedb/src/reference_path.rs:222:76 | 222 | if usize::from(no_of_elements_to_keep) > current_path.len() || current_path.len() == 0 { | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `current_path.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero
redundant closure: grovedb/src/reference_path.rs#L92
warning: redundant closure --> grovedb/src/reference_path.rs:92:14 | 92 | .map(|segment| hex::encode(segment)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex::encode` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
writing `&Vec` instead of `&[_]` involves a new object where a slice will do: grovedb/src/reference_path.rs#L90
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do --> grovedb/src/reference_path.rs:90:23 | 90 | fn display_path(path: &Vec<Vec<u8>>) -> String { | ^^^^^^^^^^^^^ help: change this to: `&[Vec<u8>]` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L414
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:414:41 | 414 | map.entry(last).or_insert_with(Vec::new).push(key); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default
redundant pattern matching, consider using `is_some()`: grovedb/src/query_result_type.rs#L412
warning: redundant pattern matching, consider using `is_some()` --> grovedb/src/query_result_type.rs:412:24 | 412 | if let Some(_) = path.pop() { | -------^^^^^^^------------- help: try: `if path.pop().is_some()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching = note: `#[warn(clippy::redundant_pattern_matching)]` on by default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L339
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:339:37 | 339 | map.entry(last).or_insert_with(Vec::new).push(element); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L320
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:320:26 | 320 | .or_insert_with(BTreeMap::new) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L302
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:302:22 | 302 | .or_insert_with(BTreeMap::new) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default
use of `or_insert_with` to construct default value: grovedb/src/query_result_type.rs#L285
warning: use of `or_insert_with` to construct default value --> grovedb/src/query_result_type.rs:285:37 | 285 | map.entry(last).or_insert_with(Vec::new).push(key); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default = note: `#[warn(clippy::unwrap_or_default)]` on by default
redundant closure: grovedb/src/query/mod.rs#L499
warning: redundant closure --> grovedb/src/query/mod.rs:499:22 | 499 | .map(|conditional_subquery_branches| Cow::Borrowed(conditional_subquery_branches)), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `Cow::Borrowed` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
redundant closure: grovedb/src/query/mod.rs#L460
warning: redundant closure --> grovedb/src/query/mod.rs:460:22 | 460 | .map(|conditional_subquery_branches| Cow::Borrowed(conditional_subquery_branches)), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `Cow::Borrowed` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
unneeded `return` statement: grovedb/src/query/mod.rs#L449
warning: unneeded `return` statement --> grovedb/src/query/mod.rs:449:9 | 449 | return false; | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 449 - return false; 449 + false |
length comparison to zero: grovedb/src/query/mod.rs#L352
warning: length comparison to zero --> grovedb/src/query/mod.rs:352:35 | 352 | } else if path_after_top_removed.len() == 0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path_after_top_removed.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero
manual implementation of `Option::map`: grovedb/src/query/mod.rs#L347
warning: manual implementation of `Option::map` --> grovedb/src/query/mod.rs:347:29 | 347 | / ... if let Some(subquery) = &query.default_subquery_branch.subquery { 348 | | ... Some(InternalCowItemsQuery::from_query(subquery)) 349 | | ... } else { 350 | | ... None 351 | | ... } | |_______________________^ help: try: `query.default_subquery_branch.subquery.as_ref().map(|subquery| InternalCowItemsQuery::from_query(subquery))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map
length comparison to zero: grovedb/src/query/mod.rs#L309
warning: length comparison to zero --> grovedb/src/query/mod.rs:309:47 | 309 | ... } else if path_after_top_removed.len() == 0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path_after_top_removed.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero = note: `#[warn(clippy::len_zero)]` on by default
manual implementation of `Option::map`: grovedb/src/query/mod.rs#L304
warning: manual implementation of `Option::map` --> grovedb/src/query/mod.rs:304:41 | 304 | / ... if let Some(subquery) = &subquery_branch.subquery { 305 | | ... Some(InternalCowItemsQuery::from_query(subquery)) 306 | | ... } else { 307 | | ... None 308 | | ... } | |_______________________^ help: try: `subquery_branch.subquery.as_ref().map(|subquery| InternalCowItemsQuery::from_query(subquery))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map = note: `#[warn(clippy::manual_map)]` on by default
the following explicit lifetimes could be elided: 'a: grovedb/src/query/mod.rs#L281
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/query/mod.rs:281:32 | 281 | pub fn query_items_at_path<'a>(&'a self, path: &[&[u8]]) -> Option<InternalCowItemsQuery> { | ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 281 - pub fn query_items_at_path<'a>(&'a self, path: &[&[u8]]) -> Option<InternalCowItemsQuery> { 281 + pub fn query_items_at_path(&self, path: &[&[u8]]) -> Option<InternalCowItemsQuery> { |
parameter is only used in recursion: grovedb/src/operations/proof/verify.rs#L179
warning: parameter is only used in recursion --> grovedb/src/operations/proof/verify.rs:179:9 | 179 | prove_options: &ProveOptions, | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prove_options` | note: parameter used here --> grovedb/src/operations/proof/verify.rs:253:37 | 253 | ... prove_options, | ^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion = note: `#[warn(clippy::only_used_in_recursion)]` on by default
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/verify.rs#L300
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/verify.rs:300:25 | 300 | limit_left.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = limit_left.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/verify.rs#L235
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/verify.rs:235:13 | 235 | limit_left.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = limit_left.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
unnecessary operation: grovedb/src/operations/proof/verify.rs#L33
warning: unnecessary operation --> grovedb/src/operations/proof/verify.rs:33:13 | 33 | / query.query.limit.ok_or(Error::NotSupported( 34 | | "limits must be set in verify_query_with_absence_proof".to_string(), 35 | | ))? as usize; | |_________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation = note: `#[warn(clippy::unnecessary_operation)]` on by default help: statement can be reduced to | 33 ~ query.query.limit.ok_or(Error::NotSupported( 34 + "limits must be set in verify_query_with_absence_proof".to_string(), 35 + ))?; |
deref which would be done by auto-deref: grovedb/src/operations/proof/util.rs#L315
warning: deref which would be done by auto-deref --> grovedb/src/operations/proof/util.rs:315:31 | 315 | .map(|e| hex_to_ascii(*e)) | ^^ help: try: `e` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice`: grovedb/src/operations/proof/util.rs#L314
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` --> grovedb/src/operations/proof/util.rs:314:10 | 314 | path.into_iter() | ^^^^^^^^^ help: call directly: `iter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec`: grovedb/src/operations/proof/util.rs#L307
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` --> grovedb/src/operations/proof/util.rs:307:10 | 307 | path.into_iter() | ^^^^^^^^^ help: call directly: `iter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref = note: `#[warn(clippy::into_iter_on_ref)]` on by default
the borrowed expression implements the required traits: grovedb/src/operations/proof/util.rs#L302
warning: the borrowed expression implements the required traits --> grovedb/src/operations/proof/util.rs:302:37 | 302 | format!("0x{}", hex::encode(&hex_value)) | ^^^^^^^^^^ help: change this to: `hex_value` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: grovedb/src/operations/proof/util.rs#L299
warning: the borrowed expression implements the required traits --> grovedb/src/operations/proof/util.rs:299:61 | 299 | .unwrap_or_else(|_| format!("0x{}", hex::encode(&hex_value))) | ^^^^^^^^^^ help: change this to: `hex_value` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L95
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:95:9 | 95 | write!(f, " proof: {}\n", hex::encode(self.proof))?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 95 - write!(f, " proof: {}\n", hex::encode(self.proof))?; 95 + writeln!(f, " proof: {}", hex::encode(self.proof))?; |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L90
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:90:9 | 90 | / write!( 91 | | f, 92 | | " value: {},\n", 93 | | element_hex_to_ascii(self.value.as_ref()) 94 | | )?; | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 90 ~ writeln!( 91 | f, 92 ~ " value: {},", |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L89
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:89:9 | 89 | write!(f, " key: {},\n", hex_to_ascii(&self.key))?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 89 - write!(f, " key: {},\n", hex_to_ascii(&self.key))?; 89 + writeln!(f, " key: {},", hex_to_ascii(&self.key))?; |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L80
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:80:9 | 80 | / write!( 81 | | f, 82 | | " path: [{}],\n", 83 | | self.path ... | 87 | | .join(", ") 88 | | )?; | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 80 ~ writeln!( 81 | f, 82 ~ " path: [{}],", |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L79
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:79:9 | 79 | write!(f, "ProvedPathKeyValue {{\n")?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 79 - write!(f, "ProvedPathKeyValue {{\n")?; 79 + writeln!(f, "ProvedPathKeyValue {{")?; |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L57
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:57:9 | 57 | write!(f, " proof: {}\n", hex::encode(self.proof))?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 57 - write!(f, " proof: {}\n", hex::encode(self.proof))?; 57 + writeln!(f, " proof: {}", hex::encode(self.proof))?; |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L52
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:52:9 | 52 | / write!( 53 | | f, 54 | | " value: {},\n", 55 | | optional_element_hex_to_ascii(self.value.as_ref()) 56 | | )?; | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 52 ~ writeln!( 53 | f, 54 ~ " value: {},", |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L51
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:51:9 | 51 | write!(f, " key: {},\n", hex_to_ascii(&self.key))?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 51 - write!(f, " key: {},\n", hex_to_ascii(&self.key))?; 51 + writeln!(f, " key: {},", hex_to_ascii(&self.key))?; |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L42
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:42:9 | 42 | / write!( 43 | | f, 44 | | " path: [{}],\n", 45 | | self.path ... | 49 | | .join(", ") 50 | | )?; | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline help: use `writeln!` instead | 42 ~ writeln!( 43 | f, 44 ~ " path: [{}],", |
using `write!()` with a format string that ends in a single newline: grovedb/src/operations/proof/util.rs#L41
warning: using `write!()` with a format string that ends in a single newline --> grovedb/src/operations/proof/util.rs:41:9 | 41 | write!(f, "ProvedPathKeyValue {{\n")?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline = note: `#[warn(clippy::write_with_newline)]` on by default help: use `writeln!` instead | 41 - write!(f, "ProvedPathKeyValue {{\n")?; 41 + writeln!(f, "ProvedPathKeyValue {{")?; |
writing `&Vec` instead of `&[_]` involves a new object where a slice will do: grovedb/src/operations/proof/generate.rs#L497
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do --> grovedb/src/operations/proof/generate.rs:497:22 | 497 | query_items: &Vec<QueryItem>, | ^^^^^^^^^^^^^^^ help: change this to: `&[QueryItem]` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/generate.rs#L479
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/generate.rs:479:13 | 479 | overall_limit.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = overall_limit.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
deref which would be done by auto-deref: grovedb/src/operations/proof/generate.rs#L475
warning: deref which would be done by auto-deref --> grovedb/src/operations/proof/generate.rs:475:43 | 475 | .map(|a| hex_to_ascii(*a)) | ^^ help: try: `a` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/generate.rs#L450
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/generate.rs:450:33 | 450 | ... overall_limit.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = overall_limit.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/generate.rs#L410
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/generate.rs:410:33 | 410 | ... overall_limit.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = overall_limit.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/generate.rs#L404
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/generate.rs:404:33 | 404 | ... overall_limit.as_mut().map(|limit| *limit -= 1); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- | | | help: try: `if let Some(limit) = overall_limit.as_mut() { ... }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn = note: `#[warn(clippy::option_map_unit_fn)]` on by default
deref which would be done by auto-deref: grovedb/src/operations/proof/generate.rs#L346
warning: deref which would be done by auto-deref --> grovedb/src/operations/proof/generate.rs:346:39 | 346 | .map(|a| hex_to_ascii(*a)) | ^^ help: try: `a` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
deref which would be done by auto-deref: grovedb/src/operations/proof/generate.rs#L304
warning: deref which would be done by auto-deref --> grovedb/src/operations/proof/generate.rs:304:47 | 304 | .map(|a| hex_to_ascii(*a)) | ^^ help: try: `a` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
redundant closure: grovedb/src/element/mod.rs#L167
warning: redundant closure --> grovedb/src/element/mod.rs:167:53 | 167 | .map_or("None".to_string(), |k| hex::encode(k)), | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex::encode` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
redundant closure: grovedb/src/element/mod.rs#L145
warning: redundant closure --> grovedb/src/element/mod.rs:145:53 | 145 | .map_or("None".to_string(), |k| hex::encode(k)), | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex::encode` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
this function has too many arguments (11/7): grovedb/src/element/query.rs#L687
warning: this function has too many arguments (11/7) --> grovedb/src/element/query.rs:687:5 | 687 | / fn query_item( 688 | | storage: &RocksDbStorage, 689 | | item: &QueryItem, 690 | | results: &mut Vec<QueryResultElement>, ... | 698 | | add_element_function: fn(PathQueryPushArgs) -> CostResult<(), Error>, 699 | | ) -> CostResult<(), Error> { | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
deref which would be done by auto-deref: grovedb/src/element/query.rs#L207
warning: deref which would be done by auto-deref --> grovedb/src/element/query.rs:207:39 | 207 | .map(|p| hex_to_ascii(*p)) | ^^ help: try: `p` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref = note: `#[warn(clippy::explicit_auto_deref)]` on by default
redundant closure: grovedb/src/element/query.rs#L199
warning: redundant closure --> grovedb/src/element/query.rs:199:49 | 199 | self.key.map_or("None".to_string(), |k| hex_to_ascii(k)) | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex_to_ascii` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
useless use of `format!`: grovedb/src/element/query.rs#L170
warning: useless use of `format!` --> grovedb/src/element/query.rs:170:22 | 170 | let mut output = format!("SubqueryBranch {{\n"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"SubqueryBranch {\n".to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format = note: `#[warn(clippy::useless_format)]` on by default
this `let...else` may be rewritten with the `?` operator: grovedb/src/element/helpers.rs#L367
warning: this `let...else` may be rewritten with the `?` operator --> grovedb/src/element/helpers.rs:367:9 | 367 | / let Some(value_cost) = self.get_specialized_cost().ok() else { 368 | | return None; 369 | | }; | |__________^ help: replace it with: `let value_cost = self.get_specialized_cost().ok()?;` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark = note: `#[warn(clippy::question_mark)]` on by default
writing `&Vec` instead of `&[_]` involves a new object where a slice will do: grovedb/src/element/helpers.rs#L296
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do --> grovedb/src/element/helpers.rs:296:14 | 296 | key: &Vec<u8>, | ^^^^^^^^ help: change this to: `&[u8]` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg = note: `#[warn(clippy::ptr_arg)]` on by default
the borrowed expression implements the required traits: grovedb/src/debugger.rs#L30
warning: the borrowed expression implements the required traits --> grovedb/src/debugger.rs:30:34 | 30 | fs::write(&grovedbg_zip, &GROVEDBG_ZIP).expect("cannot crate grovedbg.zip"); | ^^^^^^^^^^^^^ help: change this to: `GROVEDBG_ZIP` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
usage of `contains_key` followed by `insert` on a `HashMap`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L277
warning: usage of `contains_key` followed by `insert` on a `HashMap` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:277:13 | 277 | / if !self.cached_merks.contains_key(&base_path) { 278 | | GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( 279 | | &mut cost, 280 | | &base_path, ... | 287 | | .insert(base_path, estimated_layer_info.is_sum_tree); 288 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry = note: `#[warn(clippy::map_entry)]` on by default help: try | 277 ~ self.cached_merks.entry(base_path).or_insert_with(|| { 278 + GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( 279 + &mut cost, 280 + &base_path, 281 + estimated_layer_info 282 + .estimated_layer_count 283 + .estimated_to_be_empty(), 284 + estimated_layer_info.is_sum_tree, 285 + ); 286 + estimated_layer_info.is_sum_tree 287 + }); |
unnecessary use of `get(path).is_none()`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L231
warning: unnecessary use of `get(path).is_none()` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:231:30 | 231 | if self.cached_merks.get(path).is_none() { | ------------------^^^^^^^^^^^^^^^^^^^ | | | help: replace it with: `!self.cached_merks.contains_key(path)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default
function `prepend_version_to_bytes` is never used: grovedb/src/versioning.rs#L32
warning: function `prepend_version_to_bytes` is never used --> grovedb/src/versioning.rs:32:15 | 32 | pub(crate) fn prepend_version_to_bytes(mut bytes: Vec<u8>, version: u32) -> Result<Vec<u8>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^
function `read_and_consume_proof_version` is never used: grovedb/src/versioning.rs#L21
warning: function `read_and_consume_proof_version` is never used --> grovedb/src/versioning.rs:21:8 | 21 | pub fn read_and_consume_proof_version(bytes: &[u8]) -> Result<(u32, &[u8]), Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
function `read_proof_version` is never used: grovedb/src/versioning.rs#L12
warning: function `read_proof_version` is never used --> grovedb/src/versioning.rs:12:8 | 12 | pub fn read_proof_version(mut bytes: &[u8]) -> Result<u32, Error> { | ^^^^^^^^^^^^^^^^^^
constant `PROOF_VERSION` is never used: grovedb/src/versioning.rs#L7
warning: constant `PROOF_VERSION` is never used --> grovedb/src/versioning.rs:7:18 | 7 | pub(crate) const PROOF_VERSION: u32 = 1; | ^^^^^^^^^^^^^
type alias `HasSubqueries` is never used: grovedb/src/query/mod.rs#L36
warning: type alias `HasSubqueries` is never used --> grovedb/src/query/mod.rs:36:10 | 36 | pub type HasSubqueries = bool; | ^^^^^^^^^^^^^
type alias `LeftToRight` is never used: grovedb/src/query/mod.rs#L33
warning: type alias `LeftToRight` is never used --> grovedb/src/query/mod.rs:33:10 | 33 | pub type LeftToRight = bool; | ^^^^^^^^^^^
method `post_process_merk_proof` is never used: grovedb/src/operations/proof/generate.rs#L523
warning: method `post_process_merk_proof` is never used --> grovedb/src/operations/proof/generate.rs:523:8 | 170 | impl GroveDb { | ------------ method in this implementation ... 523 | fn post_process_merk_proof<B: AsRef<[u8]>>( | ^^^^^^^^^^^^^^^^^^^^^^^
variants `Execute`, `AverageCase`, and `WorstCase` are never constructed: grovedb/src/batch/mode.rs#L46
warning: variants `Execute`, `AverageCase`, and `WorstCase` are never constructed --> grovedb/src/batch/mode.rs:46:5 | 45 | pub enum BatchRunMode { | ------------ variants in this enum 46 | Execute, | ^^^^^^^ 47 | #[cfg(feature = "estimated_costs")] 48 | AverageCase(HashMap<KeyInfoPath, EstimatedLayerInformation>), | ^^^^^^^^^^^ 49 | #[cfg(feature = "estimated_costs")] 50 | WorstCase(HashMap<KeyInfoPath, WorstCaseLayerInformation>), | ^^^^^^^^^ | = note: `BatchRunMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
method `get_batch_run_mode` is never used: grovedb/src/batch/mod.rs#L686
warning: method `get_batch_run_mode` is never used --> grovedb/src/batch/mod.rs:686:8 | 683 | trait TreeCache<G, SR> { | --------- method in this trait ... 686 | fn get_batch_run_mode(&self) -> BatchRunMode; | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
type `query::InternalCowItemsQuery<'a>` is more private than the item `query::PathQuery::query_items_at_path`: grovedb/src/query/mod.rs#L281
warning: type `query::InternalCowItemsQuery<'a>` is more private than the item `query::PathQuery::query_items_at_path` --> grovedb/src/query/mod.rs:281:5 | 281 | pub fn query_items_at_path<'a>(&'a self, path: &[&[u8]]) -> Option<InternalCowItemsQuery> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `query::PathQuery::query_items_at_path` is reachable at visibility `pub` | note: but type `query::InternalCowItemsQuery<'a>` is only usable at visibility `pub(crate)` --> grovedb/src/query/mod.rs:420:1 | 420 | pub(crate) struct InternalCowItemsQuery<'a> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `#[warn(private_interfaces)]` on by default
this `if` statement can be collapsed: grovedb/src/query/mod.rs#L297
warning: this `if` statement can be collapsed --> grovedb/src/query/mod.rs:297:29 | 297 | / ... if path_after_top_removed.len() <= subquery_path.len() { 298 | | ... if path_after_top_removed 299 | | ... .iter() 300 | | ... .zip(subquery_path) ... | 326 | | ... } 327 | | ... } | |_______________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 297 ~ if path_after_top_removed.len() <= subquery_path.len() && path_after_top_removed 298 + .iter() 299 + .zip(subquery_path) 300 + .all(|(a, b)| *a == b.as_slice()) { 301 + return if path_after_top_removed.len() == subquery_path.len() { 302 + if let Some(subquery) = &subquery_branch.subquery { 303 + Some(InternalCowItemsQuery::from_query(subquery)) 304 + } else { 305 + None 306 + } 307 + } else if path_after_top_removed.len() == 0 { 308 + // we are at the terminal of the path 309 + // we include subqueries as this can be useful in 310 + // verification 311 + 312 + let key = 313 + subquery_path[path_after_top_removed.len()].clone(); 314 + if query.has_subquery_or_subquery_path_on_key(&key, false) { 315 + Some(InternalCowItemsQuery::from_key_when_in_terminal_path(key, query)) 316 + } else { 317 + Some(InternalCowItemsQuery::from_key_when_at_terminal_path_with_no_subquery(key)) 318 + } 319 + } else { 320 + Some(InternalCowItemsQuery::from_key_when_in_path( 321 + subquery_path[path_after_top_removed.len()].clone(), 322 + )) 323 + }; 324 + } |
unused import: `Key`: grovedb/src/query/mod.rs#L7
warning: unused import: `Key` --> grovedb/src/query/mod.rs:7:35 | 7 | use grovedb_merk::proofs::query::{Key, SubqueryBranch}; | ^^^
unused import: `fmt::Formatter`: grovedb/src/operations/proof/util.rs#L1
warning: unused import: `fmt::Formatter` --> grovedb/src/operations/proof/util.rs:1:16 | 1 | use std::{fmt, fmt::Formatter}; | ^^^^^^^^^^^^^^
unused import: `net::Ipv4Addr`: grovedb/src/debugger.rs#L3
warning: unused import: `net::Ipv4Addr` --> grovedb/src/debugger.rs:3:15 | 3 | use std::{fs, net::Ipv4Addr, sync::Weak}; | ^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
duplicated attribute: merk/src/estimated_costs/average_case_costs.rs#L77
warning: duplicated attribute --> merk/src/estimated_costs/average_case_costs.rs:77:7 | 77 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ | note: first defined here --> merk/src/estimated_costs/average_case_costs.rs:76:7 | 76 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ help: remove this attribute --> merk/src/estimated_costs/average_case_costs.rs:77:7 | 77 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicated_attributes = note: `#[warn(clippy::duplicated_attributes)]` on by default
this function has too many arguments (8/7): merk/src/tree/mod.rs#L783
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:783:5 | 783 | / pub fn put_value_with_reference_value_hash_and_value_cost( 784 | | mut self, 785 | | value: Vec<u8>, 786 | | value_hash: CryptoHash, ... | 805 | | >, 806 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/tree/walk/mod.rs#L316
warning: this function has too many arguments (8/7) --> merk/src/tree/walk/mod.rs:316:5 | 316 | / pub fn put_value_with_reference_value_hash_and_value_cost( 317 | | mut self, 318 | | value: Vec<u8>, 319 | | value_hash: CryptoHash, ... | 338 | | >, 339 | | ) -> CostResult<Self, Error> { | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (9/7): merk/src/tree/ops.rs#L690
warning: this function has too many arguments (9/7) --> merk/src/tree/ops.rs:690:5 | 690 | / fn recurse<K: AsRef<[u8]>, C, V, U, R>( 691 | | self, 692 | | batch: &MerkBatch<K>, 693 | | mid: usize, ... | 699 | | section_removal_bytes: &mut R, 700 | | ) -> CostResult<(Option<Self>, KeyUpdates), Error> | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
the borrowed expression implements the required traits: merk/src/proofs/mod.rs#L131
warning: the borrowed expression implements the required traits --> merk/src/proofs/mod.rs:131:78 | 131 | String::from_utf8(hex_value.to_vec()).unwrap_or_else(|_| hex::encode(&hex_value)) | ^^^^^^^^^^ help: change this to: `hex_value` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: merk/src/proofs/mod.rs#L129
warning: the borrowed expression implements the required traits --> merk/src/proofs/mod.rs:129:21 | 129 | hex::encode(&hex_value) | ^^^^^^^^^^ help: change this to: `hex_value` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
unneeded `return` statement: merk/src/proofs/query/mod.rs#L239
warning: unneeded `return` statement --> merk/src/proofs/query/mod.rs:239:9 | 239 | return false; | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 239 - return false; 239 + false |
unneeded `return` statement: merk/src/proofs/query/mod.rs#L222
warning: unneeded `return` statement --> merk/src/proofs/query/mod.rs:222:9 | 222 | return false; | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 222 - return false; 222 + false |
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L385
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:385:17 | 385 | / self.default_subquery_branch.subquery = 386 | | other_default_subquery_branch.subquery.clone(); | |__________________________________________________________________^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_subquery_branch.subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L336
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:336:25 | 336 | / self.default_subquery_branch.subquery = 337 | | other_default_subquery_branch.subquery.clone(); | |__________________________________________________________________________^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_subquery_branch.subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: merk/src/proofs/query/merge.rs#L253
warning: assigning the result of `Clone::clone()` may be inefficient --> merk/src/proofs/query/merge.rs:253:13 | 253 | self.default_subquery_branch.subquery = other_default_branch_subquery.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `self.default_subquery_branch.subquery.clone_from(&other_default_branch_subquery)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
module has the same name as its containing module: merk/src/proofs/chunk.rs#L5
warning: module has the same name as its containing module --> merk/src/proofs/chunk.rs:5:1 | 5 | pub mod chunk; | ^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception = note: `#[warn(clippy::module_inception)]` on by default
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/mod.rs#L578
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/mod.rs:578:10 | 578 | ) -> (BTreeMap<Vec<u8>, CryptoHash>, BTreeMap<Vec<u8>, Vec<u8>>) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
this function has too many arguments (8/7): merk/src/merk/apply.rs#L277
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:277:5 | 277 | / pub fn apply_unchecked<KB, KA, C, V, U, R>( 278 | | &mut self, 279 | | batch: &MerkBatch<KB>, 280 | | aux: &AuxMerkBatch<KA>, ... | 285 | | section_removal_bytes: &mut R, 286 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this function has too many arguments (8/7): merk/src/merk/apply.rs#L176
warning: this function has too many arguments (8/7) --> merk/src/merk/apply.rs:176:5 | 176 | / pub fn apply_with_costs_just_in_time_value_update<KB, KA>( 177 | | &mut self, 178 | | batch: &MerkBatch<KB>, 179 | | aux: &AuxMerkBatch<KA>, ... | 198 | | >, 199 | | ) -> CostResult<(), Error> | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/chunks.rs#L346
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/chunks.rs:346:33 | 346 | fn next_chunk(&mut self) -> Option<Result<(Vec<Op>, Option<Vec<u8>>), Error>> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
trait `BTreeMapExtras` is never used: merk/src/proofs/query/map.rs#L377
warning: trait `BTreeMapExtras` is never used --> merk/src/proofs/query/map.rs:377:7 | 377 | trait BTreeMapExtras { | ^^^^^^^^^^^^^^
method `attempt_state_recovery` is never used: merk/src/merk/restore.rs#L390
warning: method `attempt_state_recovery` is never used --> merk/src/merk/restore.rs:390:8 | 66 | impl<'db, S: StorageContext<'db>> Restorer<S> { | --------------------------------------------- method in this implementation ... 390 | fn attempt_state_recovery(&mut self) -> Result<(), Error> { | ^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused macro definition: `compare_result_tuples_not_optional`: merk/src/proofs/query/mod.rs#L133
warning: unused macro definition: `compare_result_tuples_not_optional` --> merk/src/proofs/query/mod.rs:133:14 | 133 | macro_rules! compare_result_tuples_not_optional { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_macros)]` on by default
'test' may be misspelled as 'tests': merk/src/tree/fuzz_tests.rs#L3
warning: 'test' may be misspelled as 'tests' --> merk/src/tree/fuzz_tests.rs:3:8 | 3 | #![cfg(tests)] | ^^^^^ help: did you mean: `test` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#maybe_misused_cfg = note: `#[warn(clippy::maybe_misused_cfg)]` on by default