Skip to content

feat: bidirectional references (non-batched operations) #746

feat: bidirectional references (non-batched operations)

feat: bidirectional references (non-batched operations) #746

Triggered via pull request February 17, 2025 13:45
Status Failure
Total duration 7m 14s
Artifacts

grovedb.yml

on: pull_request
Tests
2m 5s
Tests
Linting
38s
Linting
Formatting
21s
Formatting
Compilation errors
7m 5s
Compilation errors
Dependencies security audit
15s
Dependencies security audit
Fit to window
Zoom out
Zoom in

Annotations

1 error and 91 warnings
Formatting
Process completed with exit code 57.
Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
this function has too many arguments (8/7): grovedb/src/lib.rs#L933
warning: this function has too many arguments (8/7) --> grovedb/src/lib.rs:933:5 | 933 | / fn verify_merk_and_submerks_in_transaction<'db, B: AsRef<[u8]>, S: StorageContext<'db>>( 934 | | &'db self, 935 | | merk: Merk<S>, 936 | | path: &SubtreePath<B>, ... | 941 | | grove_version: &GroveVersion, 942 | | ) -> Result<VerificationIssues, 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): grovedb/src/operations/proof/verify.rs#L228
warning: this function has too many arguments (8/7) --> grovedb/src/operations/proof/verify.rs:228:5 | 228 | / fn verify_layer_proof<T>( 229 | | layer_proof: &LayerProof, 230 | | prove_options: &ProveOptions, 231 | | query: &PathQuery, ... | 236 | | grove_version: &GroveVersion, 237 | | ) -> Result<CryptoHash, Error> | |__________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/operations/proof/generate.rs#L215
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/operations/proof/generate.rs:215:74 | 215 | self.open_transactional_merk_at_path(path.as_slice().into(), &tx, None, grove_version) | ^^^ help: change this to: `tx` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this function has too many arguments (8/7): grovedb/src/operations/insert/mod.rs#L166
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/mod.rs:166:5 | 166 | / fn add_element_on_transaction<'db, B: AsRef<[u8]>>( 167 | | &'db self, 168 | | path: SubtreePath<B>, 169 | | key: &[u8], ... | 174 | | grove_version: &GroveVersion, 175 | | ) -> CostResult<Merk<PrefixedRocksDbTransactionContext<'db>>, 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): grovedb/src/operations/insert/mod.rs#L117
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/mod.rs:117:5 | 117 | / fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( 118 | | &self, 119 | | path: SubtreePath<'b, B>, 120 | | key: &[u8], ... | 125 | | grove_version: &GroveVersion, 126 | | ) -> CostResult<(), Error> { | |______________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
the following explicit lifetimes could be elided: 'b, 'db: grovedb/src/operations/insert/mod.rs#L117
warning: the following explicit lifetimes could be elided: 'b, 'db --> grovedb/src/operations/insert/mod.rs:117:30 | 117 | fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( | ^^^ ^^ 118 | &self, 119 | path: SubtreePath<'b, B>, | ^^ ... 123 | transaction: &'db Transaction, | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 117 ~ fn insert_on_transaction<B: AsRef<[u8]>>( 118 | &self, 119 ~ path: SubtreePath<'_, B>, 120 | key: &[u8], 121 | element: Element, 122 | options: InsertOptions, 123 ~ transaction: &Transaction, |
this function has too many arguments (8/7): grovedb/src/operations/insert/v1.rs#L17
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/v1.rs:17:1 | 17 | / pub(super) fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( 18 | | db: &GroveDb, 19 | | path: SubtreePath<'b, B>, 20 | | key: &[u8], ... | 25 | | grove_version: &GroveVersion, 26 | | ) -> CostResult<(), Error> { | |__________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
the following explicit lifetimes could be elided: 'b, 'db: grovedb/src/operations/insert/v1.rs#L17
warning: the following explicit lifetimes could be elided: 'b, 'db --> grovedb/src/operations/insert/v1.rs:17:37 | 17 | pub(super) fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( | ^^^ ^^ 18 | db: &GroveDb, 19 | path: SubtreePath<'b, B>, | ^^ ... 23 | transaction: &'db Transaction, | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 17 ~ pub(super) fn insert_on_transaction<B: AsRef<[u8]>>( 18 | db: &GroveDb, 19 ~ path: SubtreePath<'_, B>, 20 | key: &[u8], 21 | element: Element, 22 | options: InsertOptions, 23 ~ transaction: &Transaction, |
this function has too many arguments (8/7): grovedb/src/operations/insert/v0.rs#L12
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/v0.rs:12:1 | 12 | / pub(super) fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( 13 | | db: &GroveDb, 14 | | path: SubtreePath<'b, B>, 15 | | key: &[u8], ... | 20 | | grove_version: &GroveVersion, 21 | | ) -> 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): grovedb/src/operations/get/query.rs#L629
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:629:5 | 629 | / pub fn query_raw( 630 | | &self, 631 | | path_query: &PathQuery, 632 | | allow_cache: bool, ... | 637 | | grove_version: &GroveVersion, 638 | | ) -> CostResult<(QueryResultElements, u16), 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): grovedb/src/operations/get/query.rs#L255
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:255:5 | 255 | / pub fn query( 256 | | &self, 257 | | path_query: &PathQuery, 258 | | allow_cache: bool, ... | 263 | | grove_version: &GroveVersion, 264 | | ) -> CostResult<(QueryResultElements, u16), 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): grovedb/src/operations/get/query.rs#L124
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:124:5 | 124 | / pub fn query_many_raw( 125 | | &self, 126 | | path_queries: &[&PathQuery], 127 | | allow_cache: bool, ... | 132 | | grove_version: &GroveVersion, 133 | | ) -> CostResult<QueryResultElements, 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): grovedb/src/operations/delete/mod.rs#L532
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:532:5 | 532 | / fn delete_internal_on_transaction<B: AsRef<[u8]>>( 533 | | &self, 534 | | path: SubtreePath<B>, 535 | | key: &[u8], ... | 547 | | grove_version: &GroveVersion, 548 | | ) -> CostResult<bool, 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): grovedb/src/operations/delete/mod.rs#L409
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:409:5 | 409 | / pub fn delete_operation_for_delete_internal<B: AsRef<[u8]>>( 410 | | &self, 411 | | path: SubtreePath<B>, 412 | | key: &[u8], ... | 417 | | grove_version: &GroveVersion, 418 | | ) -> CostResult<Option<QualifiedGroveDbOp>, 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): grovedb/src/operations/delete/worst_case.rs#L113
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/worst_case.rs:113:5 | 113 | / pub fn worst_case_delete_operation_for_delete<'db, S: Storage<'db>>( 114 | | path: &KeyInfoPath, 115 | | key: &KeyInfo, 116 | | in_parent_tree_type: TreeType, ... | 121 | | grove_version: &GroveVersion, 122 | | ) -> CostResult<QualifiedGroveDbOp, 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): grovedb/src/operations/delete/delete_up_tree.rs#L199
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/delete_up_tree.rs:199:5 | 199 | / pub fn add_delete_operations_for_delete_up_tree_while_empty<B: AsRef<[u8]>>( 200 | | &self, 201 | | path: SubtreePath<B>, 202 | | key: &[u8], ... | 207 | | grove_version: &GroveVersion, 208 | | ) -> CostResult<Option<Vec<QualifiedGroveDbOp>>, 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): grovedb/src/operations/delete/delete_up_tree.rs#L167
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/delete_up_tree.rs:167:5 | 167 | / pub fn delete_operations_for_delete_up_tree_while_empty<B: AsRef<[u8]>>( 168 | | &self, 169 | | path: SubtreePath<B>, 170 | | key: &[u8], ... | 175 | | grove_version: &GroveVersion, 176 | | ) -> CostResult<Vec<QualifiedGroveDbOp>, 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): grovedb/src/operations/delete/average_case.rs#L138
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/average_case.rs:138:5 | 138 | / pub fn average_case_delete_operation_for_delete<'db, S: Storage<'db>>( 139 | | path: &KeyInfoPath, 140 | | key: &KeyInfo, 141 | | in_parent_tree_type: TreeType, ... | 146 | | grove_version: &GroveVersion, 147 | | ) -> CostResult<QualifiedGroveDbOp, Error> { | |______________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
the following explicit lifetimes could be elided: 'c, 'db: grovedb/src/operations/delete/v1.rs#L231
warning: the following explicit lifetimes could be elided: 'c, 'db --> grovedb/src/operations/delete/v1.rs:231:6 | 231 | impl<'c, 'db, 'b, B: AsRef<[u8]>> util::Visit<'b, B> for DeletionVisitor<'c, 'db, 'b, B> { | ^^ ^^^ ^^ ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 231 - impl<'c, 'db, 'b, B: AsRef<[u8]>> util::Visit<'b, B> for DeletionVisitor<'c, 'db, 'b, B> { 231 + impl<'b, B: AsRef<[u8]>> util::Visit<'b, B> for DeletionVisitor<'_, '_, 'b, B> { |
this function has too many arguments (8/7): grovedb/src/operations/delete/v1.rs#L19
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/v1.rs:19:1 | 19 | / pub(super) fn delete_internal_on_transaction<B: AsRef<[u8]>>( 20 | | db: &GroveDb, 21 | | path: SubtreePath<B>, 22 | | key: &[u8], ... | 34 | | grove_version: &GroveVersion, 35 | | ) -> CostResult<bool, 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): grovedb/src/operations/delete/v0.rs#L17
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/v0.rs:17:1 | 17 | / pub(super) fn delete_internal_on_transaction<B: AsRef<[u8]>>( 18 | | db: &GroveDb, 19 | | path: SubtreePath<B>, 20 | | key: &[u8], ... | 32 | | grove_version: &GroveVersion, 33 | | ) -> CostResult<bool, Error> { | |____________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/merk_cache.rs#L254
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/merk_cache.rs:254:33 | 254 | ... &self.version, | ^^^^^^^^^^^^^ help: change this to: `self.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/merk_cache.rs#L114
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/merk_cache.rs:114:59 | 114 | Element::get(&merk, parent_key, true, &self.version) | ^^^^^^^^^^^^^ help: change this to: `self.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/merk_cache.rs#L114
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/merk_cache.rs:114:34 | 114 | Element::get(&merk, parent_key, true, &self.version) | ^^^^^ help: change this to: `merk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this function has too many arguments (12/7): grovedb/src/element/query.rs#L717
warning: this function has too many arguments (12/7) --> grovedb/src/element/query.rs:717:5 | 717 | / fn query_item( 718 | | storage: &RocksDbStorage, 719 | | item: &QueryItem, 720 | | results: &mut Vec<QueryResultElement>, ... | 729 | | grove_version: &GroveVersion, 730 | | ) -> 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): grovedb/src/element/query.rs#L302
warning: this function has too many arguments (8/7) --> grovedb/src/element/query.rs:302:5 | 302 | / pub fn get_query_apply_function( 303 | | storage: &RocksDbStorage, 304 | | path: &[&[u8]], 305 | | sized_query: &SizedQuery, ... | 310 | | grove_version: &GroveVersion, 311 | | ) -> CostResult<(QueryResultElements, u16), Error> { | |______________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/element/insert.rs#L544
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/element/insert.rs:544:32 | 544 | Self::get_optional(&merk, &key, true, grove_version) | ^^^^^ help: change this to: `merk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/element/insert.rs#L381
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/element/insert.rs:381:32 | 381 | Self::get_optional(&merk, &key, true, grove_version) | ^^^^^ help: change this to: `merk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/element/insert.rs#L239
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/element/insert.rs:239:43 | 239 | 1 => { Self::get_optional(&merk, key, true, grove_version) } | ^^^^^ help: change this to: `merk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/debugger.rs#L346
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/debugger.rs:346:29 | 346 | ... &tx, | ^^^ help: change this to: `tx` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
the following explicit lifetimes could be elided: 'db, 'c: grovedb/src/bidirectional_references/handling.rs#L659
warning: the following explicit lifetimes could be elided: 'db, 'c --> grovedb/src/bidirectional_references/handling.rs:659:28 | 659 | fn get_backward_references<'db, 'c>( | ^^^ ^^ 660 | merk: &mut MerkHandle<'db, 'c>, | ^^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 659 ~ fn get_backward_references( 660 ~ merk: &mut MerkHandle<'_, '_>, |
the following explicit lifetimes could be elided: 'db, 'c: grovedb/src/bidirectional_references/handling.rs#L618
warning: the following explicit lifetimes could be elided: 'db, 'c --> grovedb/src/bidirectional_references/handling.rs:618:27 | 618 | fn add_backward_reference<'db, 'c>( | ^^^ ^^ 619 | target_merk: &mut MerkHandle<'db, 'c>, | ^^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 618 ~ fn add_backward_reference( 619 ~ target_merk: &mut MerkHandle<'_, '_>, |
the following explicit lifetimes could be elided: 'db, 'c: grovedb/src/bidirectional_references/handling.rs#L579
warning: the following explicit lifetimes could be elided: 'db, 'c --> grovedb/src/bidirectional_references/handling.rs:579:35 | 579 | fn get_backward_references_bitvec<'db, 'c>( | ^^^ ^^ 580 | merk: &mut MerkHandle<'db, 'c>, | ^^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 579 ~ fn get_backward_references_bitvec( 580 ~ merk: &mut MerkHandle<'_, '_>, |
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/bidirectional_references/handling.rs#L477
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/bidirectional_references/handling.rs:477:21 | 477 | &merk_cache.version | ^^^^^^^^^^^^^^^^^^^ help: change this to: `merk_cache.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/bidirectional_references/handling.rs#L362
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/bidirectional_references/handling.rs:362:69 | 362 | cost_return_on_error!(&mut cost, new.value_hash(&merk_cache.version)) | ^^^^^^^^^^^^^^^^^^^ help: change this to: `merk_cache.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/bidirectional_references/handling.rs#L328
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/bidirectional_references/handling.rs:328:69 | 328 | cost_return_on_error!(&mut cost, new.value_hash(&merk_cache.version)) | ^^^^^^^^^^^^^^^^^^^ help: change this to: `merk_cache.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/bidirectional_references/handling.rs#L232
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/bidirectional_references/handling.rs:232:17 | 232 | &merk_cache.version, | ^^^^^^^^^^^^^^^^^^^ help: change this to: `merk_cache.version` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this lifetime isn't used in the function definition: grovedb/src/bidirectional_references/handling.rs#L110
warning: this lifetime isn't used in the function definition --> grovedb/src/bidirectional_references/handling.rs:110:66 | 110 | pub(crate) fn process_bidirectional_reference_insertion<'db, 'b, 'k, B: AsRef<[u8]>>( | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default
the following explicit lifetimes could be elided: 'db: grovedb/src/bidirectional_references/handling.rs#L110
warning: the following explicit lifetimes could be elided: 'db --> grovedb/src/bidirectional_references/handling.rs:110:57 | 110 | pub(crate) fn process_bidirectional_reference_insertion<'db, 'b, 'k, B: AsRef<[u8]>>( | ^^^ 111 | merk_cache: &MerkCache<'db, 'b, B>, | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 110 ~ pub(crate) fn process_bidirectional_reference_insertion<'b, 'k, B: AsRef<[u8]>>( 111 ~ merk_cache: &MerkCache<'_, 'b, B>, |
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/bidirectional_references/handling.rs#L84
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/bidirectional_references/handling.rs:84:57 | 84 | get_backward_references_bitvec(target_merk, &target_key) | ^^^^^^^^^^^ help: change this to: `target_key` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
the following explicit lifetimes could be elided: 'db, 'c: grovedb/src/bidirectional_references/handling.rs#L75
warning: the following explicit lifetimes could be elided: 'db, 'c --> grovedb/src/bidirectional_references/handling.rs:75:43 | 75 | fn remove_backward_reference_resolved<'db, 'c>( | ^^^ ^^ 76 | target_merk: &mut MerkHandle<'db, 'c>, | ^^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 75 ~ fn remove_backward_reference_resolved( 76 ~ target_merk: &mut MerkHandle<'_, '_>, |
the following explicit lifetimes could be elided: 'c, 'db: grovedb/src/bidirectional_references/handling.rs#L30
warning: the following explicit lifetimes could be elided: 'c, 'db --> grovedb/src/bidirectional_references/handling.rs:30:34 | 30 | fn remove_backward_reference<'db, 'b, 'c, B: AsRef<[u8]>>( | ^^^ ^^ 31 | self, 32 | merk_cache: &'c MerkCache<'db, 'b, B>, | ^^ ^^^ | = 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 | 30 ~ fn remove_backward_reference<'b, B: AsRef<[u8]>>( 31 | self, 32 ~ merk_cache: &MerkCache<'_, 'b, B>, |
this function has too many arguments (8/7): grovedb/src/batch/mod.rs#L2426
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:2426:5 | 2426 | / pub fn apply_partial_batch_with_element_flags_update( 2427 | | &self, 2428 | | ops: Vec<QualifiedGroveDbOp>, 2429 | | batch_apply_options: Option<BatchApplyOptions>, ... | 2448 | | grove_version: &GroveVersion, 2449 | | ) -> 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): grovedb/src/batch/mod.rs#L2055
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:2055:5 | 2055 | / fn continue_partial_apply_body<'db, S: StorageContext<'db>>( 2056 | | &self, 2057 | | previous_leftover_operations: Option<OpsByLevelPath>, 2058 | | additional_ops: Vec<QualifiedGroveDbOp>, ... | 2074 | | grove_version: &GroveVersion, 2075 | | ) -> CostResult<Option<OpsByLevelPath>, 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): grovedb/src/batch/mod.rs#L961
warning: this function has too many arguments (9/7) --> grovedb/src/batch/mod.rs:961:5 | 961 | / fn process_reference_with_hop_count_greater_than_one<'a, G, SR>( 962 | | &'a mut self, 963 | | key: &[u8], 964 | | reference_path: &[Vec<u8>], ... | 970 | | grove_version: &GroveVersion, 971 | | ) -> CostResult<CryptoHash, 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): grovedb/src/batch/mod.rs#L743
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:743:5 | 743 | / fn process_reference<'a, G, SR>( 744 | | &'a mut self, 745 | | qualified_path: &[Vec<u8>], 746 | | ops_by_qualified_paths: &'a BTreeMap<Vec<Vec<u8>>, GroveOp>, ... | 751 | | grove_version: &GroveVersion, 752 | | ) -> CostResult<CryptoHash, 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): grovedb/src/batch/mod.rs#L680
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:680:5 | 680 | / fn execute_ops_on_path( 681 | | &mut self, 682 | | path: &KeyInfoPath, 683 | | ops_at_path_by_key: BTreeMap<KeyInfo, GroveOp>, ... | 688 | | grove_version: &GroveVersion, 689 | | ) -> CostResult<RootHashKeyAndAggregateData, 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): grovedb/src/batch/just_in_time_reference_update.rs#L29
warning: this function has too many arguments (9/7) --> grovedb/src/batch/just_in_time_reference_update.rs:29:5 | 29 | / pub(crate) fn process_old_element_flags<G, SR>( 30 | | key: &[u8], 31 | | serialized: &[u8], 32 | | new_element: &mut Element, ... | 38 | | grove_version: &GroveVersion, 39 | | ) -> CostResult<CryptoHash, 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
field `visitor` is never read: grovedb/src/util/visitor.rs#L33
warning: field `visitor` is never read --> grovedb/src/util/visitor.rs:33:9 | 31 | pub(crate) struct WalkResult<V> { | ---------- field in this struct 32 | pub short_circuited: bool, 33 | pub visitor: V, | ^^^^^^^
variants `Execute`, `AverageCase`, and `WorstCase` are never constructed: grovedb/src/batch/mode.rs#L18
warning: variants `Execute`, `AverageCase`, and `WorstCase` are never constructed --> grovedb/src/batch/mode.rs:18:5 | 17 | pub enum BatchRunMode { | ------------ variants in this enum 18 | Execute, | ^^^^^^^ 19 | #[cfg(feature = "estimated_costs")] 20 | AverageCase(HashMap<KeyInfoPath, EstimatedLayerInformation>), | ^^^^^^^^^^^ 21 | #[cfg(feature = "estimated_costs")] 22 | 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#L677
warning: method `get_batch_run_mode` is never used --> grovedb/src/batch/mod.rs:677:8 | 674 | trait TreeCache<G, SR> { | --------- method in this trait ... 677 | fn get_batch_run_mode(&self) -> BatchRunMode; | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
this `else { if .. }` block can be collapsed: grovedb/src/operations/insert/v1.rs#L139
warning: this `else { if .. }` block can be collapsed --> grovedb/src/operations/insert/v1.rs:139:20 | 139 | } else { | ____________________^ 140 | | if options.propagate_backward_references { 141 | | let delta = cost_return_on_error!( 142 | | &mut cost, ... | 173 | | } 174 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_else_if = note: `#[warn(clippy::collapsible_else_if)]` on by default help: collapse nested if block | 139 ~ } else if options.propagate_backward_references { 140 + let delta = cost_return_on_error!( 141 + &mut cost, 142 + subtree_to_insert_into.for_merk(|m| element.insert_subtree_if_changed( 143 + m, 144 + key, 145 + NULL_HASH, 146 + Some(options.as_merk_options()), 147 + grove_version 148 + )) 149 + ); 150 + 151 + cost_return_on_error!( 152 + &mut cost, 153 + process_update_element_with_backward_references( 154 + &cache, 155 + subtree_to_insert_into.clone(), 156 + path.derive_owned(), 157 + key, 158 + delta 159 + ) 160 + ); 161 + } else { 162 + cost_return_on_error!( 163 + &mut cost, 164 + subtree_to_insert_into.for_merk(|m| element.insert_subtree( 165 + m, 166 + key, 167 + NULL_HASH, 168 + Some(options.as_merk_options()), 169 + grove_version 170 + )) 171 + ); 172 + } |
unneeded sub `cfg` when there is only one condition: grovedb/src/element/insert.rs#L648
warning: unneeded sub `cfg` when there is only one condition --> grovedb/src/element/insert.rs:648:7 | 648 | #[cfg(all(feature = "minimal"))] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `feature = "minimal"` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg = note: `#[warn(clippy::non_minimal_cfg)]` on by default
this function has too many arguments (9/7): merk/src/tree/walk/mod.rs#L341
warning: this function has too many arguments (9/7) --> merk/src/tree/walk/mod.rs:341:5 | 341 | / pub fn put_value_with_reference_value_hash_and_value_cost( 342 | | mut self, 343 | | value: Vec<u8>, 344 | | value_hash: CryptoHash, ... | 367 | | >, 368 | | ) -> 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#L295
warning: this function has too many arguments (8/7) --> merk/src/tree/walk/mod.rs:295:5 | 295 | / pub fn put_value_and_reference_value_hash( 296 | | mut self, 297 | | value: Vec<u8>, 298 | | value_hash: CryptoHash, ... | 320 | | >, 321 | | ) -> 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#L249
warning: this function has too many arguments (8/7) --> merk/src/tree/walk/mod.rs:249:5 | 249 | / pub fn put_value_with_fixed_cost( 250 | | mut self, 251 | | value: Vec<u8>, 252 | | value_fixed_cost: u32, ... | 274 | | >, 275 | | ) -> 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 (11/7): merk/src/tree/ops.rs#L733
warning: this function has too many arguments (11/7) --> merk/src/tree/ops.rs:733:5 | 733 | / fn recurse<K: AsRef<[u8]>, C, V, T, U, R>( 734 | | self, 735 | | batch: &MerkBatch<K>, 736 | | mid: usize, ... | 744 | | grove_version: &GroveVersion, 745 | | ) -> CostResult<(Option<Self>, KeyUpdates), 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/ops.rs#L415
warning: this function has too many arguments (8/7) --> merk/src/tree/ops.rs:415:5 | 415 | / fn apply_sorted<K: AsRef<[u8]>, C, V, T, U, R>( 416 | | self, 417 | | batch: &MerkBatch<K>, 418 | | old_specialized_cost: &C, ... | 423 | | grove_version: &GroveVersion, 424 | | ) -> CostResult<(Option<Self>, KeyUpdates), 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/ops.rs#L235
warning: this function has too many arguments (8/7) --> merk/src/tree/ops.rs:235:5 | 235 | / fn build<K: AsRef<[u8]>, C, V, T, U, R>( 236 | | batch: &MerkBatch<K>, 237 | | source: S, 238 | | old_tree_cost: &C, ... | 243 | | grove_version: &GroveVersion, 244 | | ) -> CostResult<Option<TreeNode>, 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#L148
warning: this function has too many arguments (9/7) --> merk/src/tree/ops.rs:148:5 | 148 | / pub fn apply_to<K: AsRef<[u8]>, C, V, T, U, R>( 149 | | maybe_tree: Option<Self>, 150 | | batch: &MerkBatch<K>, 151 | | source: S, ... | 157 | | grove_version: &GroveVersion, 158 | | ) -> CostContext<Result<(Option<TreeNode>, KeyUpdates), Error>> | |___________________________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
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
this function has too many arguments (8/7): merk/src/merk/mod.rs#L694
warning: this function has too many arguments (8/7) --> merk/src/merk/mod.rs:694:5 | 694 | / fn verify_link( 695 | | &self, 696 | | link: &Link, 697 | | parent_key: &[u8], ... | 702 | | grove_version: &GroveVersion, 703 | | ) { | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/mod.rs#L634
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/mod.rs:634:10 | 634 | ) -> (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 (10/7): merk/src/merk/apply.rs#L322
warning: this function has too many arguments (10/7) --> merk/src/merk/apply.rs:322:5 | 322 | / pub fn apply_unchecked<KB, KA, C, V, T, U, R>( 323 | | &mut self, 324 | | batch: &MerkBatch<KB>, 325 | | aux: &AuxMerkBatch<KA>, ... | 332 | | grove_version: &GroveVersion, 333 | | ) -> 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 (10/7): merk/src/merk/apply.rs#L206
warning: this function has too many arguments (10/7) --> merk/src/merk/apply.rs:206:5 | 206 | / pub fn apply_with_costs_just_in_time_value_update<KB, KA>( 207 | | &mut self, 208 | | batch: &MerkBatch<KB>, 209 | | aux: &AuxMerkBatch<KA>, ... | 235 | | grove_version: &GroveVersion, 236 | | ) -> 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#L393
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/chunks.rs:393:10 | 393 | ) -> 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
very complex type used. Consider factoring parts into `type` definitions: merk/src/merk/chunks.rs#L363
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/chunks.rs:363:10 | 363 | ) -> 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
method `apply_sorted_without_costs` is never used: merk/src/tree/ops.rs#L390
warning: method `apply_sorted_without_costs` is never used --> merk/src/tree/ops.rs:390:19 | 139 | / impl<S> Walker<S> 140 | | where 141 | | S: Fetch + Sized + Clone, | |_____________________________- method in this implementation ... 390 | pub(crate) fn apply_sorted_without_costs<K: AsRef<[u8]>>( | ^^^^^^^^^^^^^^^^^^^^^^^^^^
method `attempt_state_recovery` is never used: merk/src/merk/restore.rs#L418
warning: method `attempt_state_recovery` is never used --> merk/src/merk/restore.rs:418:8 | 68 | impl<'db, S: StorageContext<'db>> Restorer<S> { | --------------------------------------------- method in this implementation ... 418 | fn attempt_state_recovery(&mut self, grove_version: &GroveVersion) -> Result<(), Error> { | ^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unexpected `cfg` condition name: `tests`: merk/src/tree/fuzz_tests.rs#L3
warning: unexpected `cfg` condition name: `tests` --> merk/src/tree/fuzz_tests.rs:3:8 | 3 | #![cfg(tests)] | ^^^^^ help: there is a config with a similar name: `test` | = help: consider using a Cargo feature instead = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tests)'] } = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tests)");` to the top of the `build.rs` = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration = note: `#[warn(unexpected_cfgs)]` on by default
explicit call to `.into_iter()` in function argument accepting `IntoIterator`: storage/src/storage.rs#L503
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` --> storage/src/storage.rs:503:26 | 503 | ops.roots.extend(other_ops.roots.into_iter()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `other_ops.roots` | note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` --> /rustc/e71f9a9a98b0faf423844bf0ba7438f29dc27d58/library/core/src/iter/traits/collect.rs:449:18 = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
explicit call to `.into_iter()` in function argument accepting `IntoIterator`: storage/src/storage.rs#L502
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` --> storage/src/storage.rs:502:24 | 502 | ops.aux.extend(other_ops.aux.into_iter()); | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `other_ops.aux` | note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` --> /rustc/e71f9a9a98b0faf423844bf0ba7438f29dc27d58/library/core/src/iter/traits/collect.rs:449:18 = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
explicit call to `.into_iter()` in function argument accepting `IntoIterator`: storage/src/storage.rs#L501
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` --> storage/src/storage.rs:501:25 | 501 | ops.meta.extend(other_ops.meta.into_iter()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `other_ops.meta` | note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` --> /rustc/e71f9a9a98b0faf423844bf0ba7438f29dc27d58/library/core/src/iter/traits/collect.rs:449:18 = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
explicit call to `.into_iter()` in function argument accepting `IntoIterator`: storage/src/storage.rs#L500
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` --> storage/src/storage.rs:500:25 | 500 | ops.data.extend(other_ops.data.into_iter()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `other_ops.data` | note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` --> /rustc/e71f9a9a98b0faf423844bf0ba7438f29dc27d58/library/core/src/iter/traits/collect.rs:449:18 = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
Linting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Linting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Linting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Linting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Compilation errors
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Compilation errors
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Compilation errors
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Compilation errors
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Compilation errors
Cache not found for keys: v0-rust-errors-Linux-b0db9221-38f03418, v0-rust-errors-Linux-b0db9221