Skip to content

feat: bidirectional references and cleanup #393

feat: bidirectional references and cleanup

feat: bidirectional references and cleanup #393

GitHub Actions / clippy failed Nov 4, 2024 in 1s

clippy

2 errors, 79 warnings

Details

Results

Message level Amount
Internal compiler error 0
Error 2
Warning 79
Note 0
Help 0

Versions

  • rustc 1.82.0 (f6e511eec 2024-10-15)
  • cargo 1.82.0 (8f40fc59f 2024-08-21)
  • clippy 0.1.82 (f6e511e 2024-10-15)

Annotations

Check failure on line 85 in node-grove/src/converter.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

non-exhaustive patterns: `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered

error[E0004]: non-exhaustive patterns: `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered
   --> node-grove/src/converter.rs:85:43
    |
85  |     let js_value: Handle<JsValue> = match element {
    |                                           ^^^^^^^ patterns `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered
    |
note: `grovedb::Element` defined here
   --> /home/runner/work/grovedb/grovedb/grovedb/src/element/mod.rs:79:1
    |
79  | pub enum Element {
    | ^^^^^^^^^^^^^^^^
...
93  |     BidirectionalReference(
    |     ---------------------- not covered
...
100 |     ItemWithBackwardsReferences(
    |     --------------------------- not covered
...
107 |     SumItemWithBackwardsReferences(
    |     ------------------------------ not covered
    = note: the matched value is of type `grovedb::Element`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
    |
94  ~         Element::SumTree(..) => nested_vecs_to_js(vec![], cx)?,
95  ~         grovedb::Element::BidirectionalReference(_, _, _, _) | grovedb::Element::ItemWithBackwardsReferences(_, _, _) | grovedb::Element::SumItemWithBackwardsReferences(_, _, _) => todo!(),
    |

Check failure on line 35 in node-grove/src/converter.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

non-exhaustive patterns: `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered

error[E0004]: non-exhaustive patterns: `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered
   --> node-grove/src/converter.rs:35:11
    |
35  |     match element {
    |           ^^^^^^^ patterns `grovedb::Element::BidirectionalReference(_, _, _, _)`, `grovedb::Element::ItemWithBackwardsReferences(_, _, _)` and `grovedb::Element::SumItemWithBackwardsReferences(_, _, _)` not covered
    |
note: `grovedb::Element` defined here
   --> /home/runner/work/grovedb/grovedb/grovedb/src/element/mod.rs:79:1
    |
79  | pub enum Element {
    | ^^^^^^^^^^^^^^^^
...
93  |     BidirectionalReference(
    |     ---------------------- not covered
...
100 |     ItemWithBackwardsReferences(
    |     --------------------------- not covered
...
107 |     SumItemWithBackwardsReferences(
    |     ------------------------------ not covered
    = note: the matched value is of type `grovedb::Element`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
    |
40  ~         Element::SumTree(..) => "sum_tree".to_string(),
41  ~         grovedb::Element::BidirectionalReference(_, _, _, _) | grovedb::Element::ItemWithBackwardsReferences(_, _, _) | grovedb::Element::SumItemWithBackwardsReferences(_, _, _) => todo!(),
    |

Check warning on line 791 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/lib.rs:782:5
    |
782 | /     fn verify_merk_and_submerks_in_transaction<'db, B: AsRef<[u8]>, S: StorageContext<'db>>(
783 | |         &'db self,
784 | |         merk: Merk<S>,
785 | |         path: &SubtreePath<B>,
...   |
790 | |         grove_version: &GroveVersion,
791 | |     ) -> Result<HashMap<Vec<Vec<u8>>, (CryptoHash, CryptoHash, CryptoHash)>, Error> {
    | |___________________________________________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 791 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> grovedb/src/lib.rs:791:10
    |
791 |     ) -> 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

Check warning on line 767 in grovedb/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
   --> grovedb/src/lib.rs:767:10
    |
767 |     ) -> 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

Check warning on line 370 in grovedb/src/operations/proof/verify.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`

warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`
   --> grovedb/src/operations/proof/verify.rs:370:25
    |
370 |                         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

Check warning on line 293 in grovedb/src/operations/proof/verify.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`

warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`
   --> grovedb/src/operations/proof/verify.rs:293:17
    |
293 |                 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
    = note: `#[warn(clippy::option_map_unit_fn)]` on by default

Check warning on line 238 in grovedb/src/operations/proof/verify.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/proof/verify.rs:229:5
    |
229 | /     fn verify_layer_proof<T>(
230 | |         layer_proof: &LayerProof,
231 | |         prove_options: &ProveOptions,
232 | |         query: &PathQuery,
...   |
237 | |         grove_version: &GroveVersion,
238 | |     ) -> Result<CryptoHash, Error>
    | |__________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 218 in grovedb/src/operations/proof/generate.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this expression creates a reference which is immediately dereferenced by the compiler

warning: this expression creates a reference which is immediately dereferenced by the compiler
   --> grovedb/src/operations/proof/generate.rs:218:74
    |
218 |             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

Check warning on line 162 in grovedb/src/operations/insert/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/insert/mod.rs:153:5
    |
153 | /     fn add_element_on_transaction<'db, B: AsRef<[u8]>>(
154 | |         &'db self,
155 | |         path: SubtreePath<B>,
156 | |         key: &[u8],
...   |
161 | |         grove_version: &GroveVersion,
162 | |     ) -> CostResult<Merk<PrefixedRocksDbTransactionContext<'db>>, Error> {
    | |________________________________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 106 in grovedb/src/operations/insert/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/insert/mod.rs:97:5
    |
97  | /     fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>(
98  | |         &self,
99  | |         path: SubtreePath<'b, B>,
100 | |         key: &[u8],
...   |
105 | |         grove_version: &GroveVersion,
106 | |     ) -> CostResult<(), Error> {
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 574 in grovedb/src/operations/get/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/get/query.rs:565:5
    |
565 | /     pub fn query_raw(
566 | |         &self,
567 | |         path_query: &PathQuery,
568 | |         allow_cache: bool,
...   |
573 | |         grove_version: &GroveVersion,
574 | |     ) -> CostResult<(QueryResultElements, u16), Error> {
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 246 in grovedb/src/operations/get/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/get/query.rs:237:5
    |
237 | /     pub fn query(
238 | |         &self,
239 | |         path_query: &PathQuery,
240 | |         allow_cache: bool,
...   |
245 | |         grove_version: &GroveVersion,
246 | |     ) -> CostResult<(QueryResultElements, u16), Error> {
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 124 in grovedb/src/operations/get/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/get/query.rs:115:5
    |
115 | /     pub fn query_many_raw(
116 | |         &self,
117 | |         path_queries: &[&PathQuery],
118 | |         allow_cache: bool,
...   |
123 | |         grove_version: &GroveVersion,
124 | |     ) -> CostResult<QueryResultElements, Error>
    | |_______________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 597 in grovedb/src/operations/delete/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/delete/mod.rs:581:5
    |
581 | /     fn delete_internal<B: AsRef<[u8]>>(
582 | |         &self,
583 | |         path: SubtreePath<B>,
584 | |         key: &[u8],
...   |
596 | |         grove_version: &GroveVersion,
597 | |     ) -> CostResult<bool, Error> {
    | |________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 457 in grovedb/src/operations/delete/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/delete/mod.rs:448:5
    |
448 | /     pub fn delete_operation_for_delete_internal<B: AsRef<[u8]>>(
449 | |         &self,
450 | |         path: SubtreePath<B>,
451 | |         key: &[u8],
...   |
456 | |         grove_version: &GroveVersion,
457 | |     ) -> CostResult<Option<QualifiedGroveDbOp>, Error> {
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 130 in grovedb/src/operations/delete/worst_case.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/delete/worst_case.rs:121:5
    |
121 | /     pub fn worst_case_delete_operation_for_delete<'db, S: Storage<'db>>(
122 | |         path: &KeyInfoPath,
123 | |         key: &KeyInfo,
124 | |         parent_tree_is_sum_tree: bool,
...   |
129 | |         grove_version: &GroveVersion,
130 | |     ) -> CostResult<QualifiedGroveDbOp, Error> {
    | |______________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 208 in grovedb/src/operations/delete/delete_up_tree.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

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

Check warning on line 176 in grovedb/src/operations/delete/delete_up_tree.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

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

Check warning on line 148 in grovedb/src/operations/delete/average_case.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/operations/delete/average_case.rs:139:5
    |
139 | /     pub fn average_case_delete_operation_for_delete<'db, S: Storage<'db>>(
140 | |         path: &KeyInfoPath,
141 | |         key: &KeyInfo,
142 | |         parent_tree_is_sum_tree: bool,
...   |
147 | |         grove_version: &GroveVersion,
148 | |     ) -> CostResult<QualifiedGroveDbOp, Error> {
    | |______________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 134 in grovedb/src/merk_cache.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this expression creates a reference which is immediately dereferenced by the compiler

warning: this expression creates a reference which is immediately dereferenced by the compiler
   --> grovedb/src/merk_cache.rs:134:9
    |
134 |         &self.0
    |         ^^^^^^^ help: change this to: `self.0`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

Check warning on line 119 in grovedb/src/merk_cache.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

call to `std::mem::forget` with a value that does not implement `Drop`. Forgetting such a type is the same as dropping it

warning: call to `std::mem::forget` with a value that does not implement `Drop`. Forgetting such a type is the same as dropping it
   --> grovedb/src/merk_cache.rs:119:9
    |
119 |         mem::forget(result_uninit);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: argument has type `[std::mem::MaybeUninit<merk_cache::MerkHandle<'_, '_>>; N]`
   --> grovedb/src/merk_cache.rs:119:21
    |
119 |         mem::forget(result_uninit);
    |                     ^^^^^^^^^^^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_non_drop
    = note: `#[warn(clippy::forget_non_drop)]` on by default

Check warning on line 727 in grovedb/src/element/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (12/7)

warning: this function has too many arguments (12/7)
   --> grovedb/src/element/query.rs:714:5
    |
714 | /     fn query_item(
715 | |         storage: &RocksDbStorage,
716 | |         item: &QueryItem,
717 | |         results: &mut Vec<QueryResultElement>,
...   |
726 | |         grove_version: &GroveVersion,
727 | |     ) -> CostResult<(), Error> {
    | |______________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 313 in grovedb/src/element/query.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many arguments (8/7)

warning: this function has too many arguments (8/7)
   --> grovedb/src/element/query.rs:304:5
    |
304 | /     pub fn get_query_apply_function(
305 | |         storage: &RocksDbStorage,
306 | |         path: &[&[u8]],
307 | |         sized_query: &SizedQuery,
...   |
312 | |         grove_version: &GroveVersion,
313 | |     ) -> CostResult<(QueryResultElements, u16), Error> {
    | |______________________________________________________^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments

Check warning on line 342 in grovedb/src/element/helpers.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this `let...else` may be rewritten with the `?` operator

warning: this `let...else` may be rewritten with the `?` operator
   --> grovedb/src/element/helpers.rs:340:9
    |
340 | /         let Some(value_cost) = self.get_specialized_cost(grove_version).ok() else {
341 | |             return None;
342 | |         };
    | |__________^ help: replace it with: `let value_cost = self.get_specialized_cost(grove_version).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