Skip to content

feat: state sync optimization #673

feat: state sync optimization

feat: state sync optimization #673

Triggered via pull request December 30, 2024 13:05
Status Success
Total duration 2m 14s
Artifacts

grovedb.yml

on: pull_request
Tests
2m 5s
Tests
Linting
39s
Linting
Formatting
22s
Formatting
Compilation errors
22s
Compilation errors
Dependencies security audit
8s
Dependencies security audit
Fit to window
Zoom out
Zoom in

Annotations

117 warnings
Dependencies security audit
2 warnings found!
Dependencies security audit
Unknown warning kind unsound found, please, file a bug
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/
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#L1223
warning: this function has too many arguments (8/7) --> grovedb/src/lib.rs:1223:5 | 1223 | / fn verify_merk_and_submerks_in_transaction<'db, B: AsRef<[u8]>, S: StorageContext<'db>>( 1224 | | &'db self, 1225 | | merk: Merk<S>, 1226 | | path: &SubtreePath<B>, ... | 1231 | | grove_version: &GroveVersion, 1232 | | ) -> Result<VerificationIssues, 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: 'a: grovedb/src/query/mod.rs#L512
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/query/mod.rs:512:6 | 512 | impl<'a> fmt::Display for SinglePathSubquery<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 512 - impl<'a> fmt::Display for SinglePathSubquery<'a> { 512 + impl fmt::Display for SinglePathSubquery<'_> { |
the following explicit lifetimes could be elided: 'a: grovedb/src/query/mod.rs#L483
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/query/mod.rs:483:6 | 483 | impl<'a> HasSubquery<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 483 - impl<'a> HasSubquery<'a> { 483 + impl HasSubquery<'_> { |
the following explicit lifetimes could be elided: 'a: grovedb/src/query/mod.rs#L467
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/query/mod.rs:467:6 | 467 | impl<'a> fmt::Display for HasSubquery<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 467 - impl<'a> fmt::Display for HasSubquery<'a> { 467 + impl fmt::Display for HasSubquery<'_> { |
called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()`: grovedb/src/operations/proof/verify.rs#L367
warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` --> grovedb/src/operations/proof/verify.rs:367:25 | 367 | 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#L293
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
this function has too many arguments (8/7): grovedb/src/operations/proof/verify.rs#L229
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
this function has too many arguments (8/7): grovedb/src/operations/insert/mod.rs#L217
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/mod.rs:217:5 | 217 | / fn add_element_on_transaction<'db, B: AsRef<[u8]>>( 218 | | &'db self, 219 | | path: SubtreePath<B>, 220 | | key: &[u8], ... | 225 | | grove_version: &GroveVersion, 226 | | ) -> 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
this function has too many arguments (8/7): grovedb/src/operations/get/query.rs#L542
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:542:5 | 542 | / pub fn query_raw( 543 | | &self, 544 | | path_query: &PathQuery, 545 | | allow_cache: bool, ... | 550 | | grove_version: &GroveVersion, 551 | | ) -> 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#L231
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:231:5 | 231 | / pub fn query( 232 | | &self, 233 | | path_query: &PathQuery, 234 | | allow_cache: bool, ... | 239 | | grove_version: &GroveVersion, 240 | | ) -> 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#L114
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:114:5 | 114 | / pub fn query_many_raw( 115 | | &self, 116 | | path_queries: &[&PathQuery], 117 | | allow_cache: bool, ... | 122 | | grove_version: &GroveVersion, 123 | | ) -> 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#L673
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:673:5 | 673 | / fn delete_internal_on_transaction<B: AsRef<[u8]>>( 674 | | &self, 675 | | path: SubtreePath<B>, 676 | | key: &[u8], ... | 688 | | grove_version: &GroveVersion, 689 | | ) -> 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#L634
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:634:5 | 634 | / fn delete_internal<B: AsRef<[u8]>>( 635 | | &self, 636 | | path: SubtreePath<B>, 637 | | key: &[u8], ... | 649 | | grove_version: &GroveVersion, 650 | | ) -> 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#L509
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:509:5 | 509 | / pub fn delete_operation_for_delete_internal<B: AsRef<[u8]>>( 510 | | &self, 511 | | path: SubtreePath<B>, 512 | | key: &[u8], ... | 517 | | grove_version: &GroveVersion, 518 | | ) -> 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#L121
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
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#L139
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
this function has too many arguments (12/7): grovedb/src/element/query.rs#L730
warning: this function has too many arguments (12/7) --> grovedb/src/element/query.rs:730:5 | 730 | / fn query_item( 731 | | storage: &RocksDbStorage, 732 | | item: &QueryItem, 733 | | results: &mut Vec<QueryResultElement>, ... | 742 | | grove_version: &GroveVersion, 743 | | ) -> 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#L303
warning: this function has too many arguments (8/7) --> grovedb/src/element/query.rs:303:5 | 303 | / pub fn get_query_apply_function( 304 | | storage: &RocksDbStorage, 305 | | path: &[&[u8]], 306 | | sized_query: &SizedQuery, ... | 311 | | grove_version: &GroveVersion, 312 | | ) -> CostResult<(QueryResultElements, u16), 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: 'a: grovedb/src/element/query.rs#L173
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/element/query.rs:173:17 | 173 | impl<'db, 'ctx, 'a> fmt::Display for PathQueryPushArgs<'db, 'ctx, 'a> | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 173 - impl<'db, 'ctx, 'a> fmt::Display for PathQueryPushArgs<'db, 'ctx, 'a> 173 + impl<'db, 'ctx> fmt::Display for PathQueryPushArgs<'db, 'ctx, '_> |
this `let...else` may be rewritten with the `?` operator: grovedb/src/element/helpers.rs#L328
warning: this `let...else` may be rewritten with the `?` operator --> grovedb/src/element/helpers.rs:328:9 | 328 | / let Some(value_cost) = self.get_specialized_cost(grove_version).ok() else { 329 | | return None; 330 | | }; | |__________^ 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
writing `&Vec` instead of `&[_]` involves a new object where a slice will do: grovedb/src/element/helpers.rs#L253
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do --> grovedb/src/element/helpers.rs:253:14 | 253 | 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
this function has too many arguments (8/7): grovedb/src/batch/mod.rs#L2447
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:2447:5 | 2447 | / pub fn apply_partial_batch_with_element_flags_update( 2448 | | &self, 2449 | | ops: Vec<QualifiedGroveDbOp>, 2450 | | batch_apply_options: Option<BatchApplyOptions>, ... | 2469 | | grove_version: &GroveVersion, 2470 | | ) -> 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#L1975
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:1975:5 | 1975 | / fn continue_partial_apply_body<'db, S: StorageContext<'db>>( 1976 | | &self, 1977 | | previous_leftover_operations: Option<OpsByLevelPath>, 1978 | | additional_ops: Vec<QualifiedGroveDbOp>, ... | 1994 | | grove_version: &GroveVersion, 1995 | | ) -> CostResult<Option<OpsByLevelPath>, Error> { | |__________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
useless conversion to the same type: `batch::GroveOp`: grovedb/src/batch/mod.rs#L1901
warning: useless conversion to the same type: `batch::GroveOp` --> grovedb/src/batch/mod.rs:1901:37 | 1901 | / ... GroveOp::ReplaceTreeRootKey { 1902 | | ... hash: root_hash, 1903 | | ... root_key: calculated_root_key, 1904 | | ... sum: sum_value, 1905 | | ... } 1906 | | ... .into(), | |_____________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion help: consider removing `.into()` | 1901 ~ GroveOp::ReplaceTreeRootKey { 1902 + hash: root_hash, 1903 + root_key: calculated_root_key, 1904 + sum: sum_value, 1905 ~ }, |
useless conversion to the same type: `batch::GroveOp`: grovedb/src/batch/mod.rs#L1849
warning: useless conversion to the same type: `batch::GroveOp` --> grovedb/src/batch/mod.rs:1849:61 | 1849 | / ... GroveOp::InsertTreeWithRootHash { 1850 | | ... hash: root_hash, 1851 | | ... root_key: calculated_root_key, 1852 | | ... flags: flags.clone(), 1853 | | ... sum: sum_value, 1854 | | ... } 1855 | | ... .into(); | |_____________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion help: consider removing `.into()` | 1849 ~ GroveOp::InsertTreeWithRootHash { 1850 + hash: root_hash, 1851 + root_key: calculated_root_key, 1852 + flags: flags.clone(), 1853 + sum: sum_value, 1854 ~ }; |
useless conversion to the same type: `batch::GroveOp`: grovedb/src/batch/mod.rs#L1838
warning: useless conversion to the same type: `batch::GroveOp` --> grovedb/src/batch/mod.rs:1838:61 | 1838 | / ... GroveOp::InsertTreeWithRootHash { 1839 | | ... hash: root_hash, 1840 | | ... root_key: calculated_root_key, 1841 | | ... flags: flags.clone(), 1842 | | ... sum: None, 1843 | | ... } 1844 | | ... .into(); | |_____________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion help: consider removing `.into()` | 1838 ~ GroveOp::InsertTreeWithRootHash { 1839 + hash: root_hash, 1840 + root_key: calculated_root_key, 1841 + flags: flags.clone(), 1842 + sum: None, 1843 ~ }; |
useless conversion to the same type: `batch::GroveOp`: grovedb/src/batch/mod.rs#L1806
warning: useless conversion to the same type: `batch::GroveOp` --> grovedb/src/batch/mod.rs:1806:49 | 1806 | / ... GroveOp::ReplaceTreeRootKey { 1807 | | ... hash: root_hash, 1808 | | ... root_key: calculated_root_key, 1809 | | ... sum: sum_value, 1810 | | ... } 1811 | | ... .into(), | |_____________________________^ | = 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 help: consider removing `.into()` | 1806 ~ GroveOp::ReplaceTreeRootKey { 1807 + hash: root_hash, 1808 + root_key: calculated_root_key, 1809 + sum: sum_value, 1810 ~ }, |
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/batch/mod.rs#L1544
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/batch/mod.rs:1544:29 | 1544 | ... &merk, | ^^^^^ help: change this to: `merk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
returning the result of a `let` binding from a block: grovedb/src/batch/mod.rs#L1697
warning: returning the result of a `let` binding from a block --> grovedb/src/batch/mod.rs:1697:9 | 1692 | / let r = merk 1693 | | .root_hash_key_and_sum() 1694 | | .add_cost(cost) 1695 | | .map_err(Error::MerkError); | |_______________________________________- unnecessary `let` binding 1696 | 1697 | r | ^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 1692 ~ 1693 | 1694 ~ merk 1695 + .root_hash_key_and_sum() 1696 + .add_cost(cost) 1697 + .map_err(Error::MerkError) |
this function has too many arguments (9/7): grovedb/src/batch/mod.rs#L971
warning: this function has too many arguments (9/7) --> grovedb/src/batch/mod.rs:971:5 | 971 | / fn process_reference_with_hop_count_greater_than_one<'a, G, SR>( 972 | | &'a mut self, 973 | | key: &[u8], 974 | | reference_path: &[Vec<u8>], ... | 980 | | grove_version: &GroveVersion, 981 | | ) -> CostResult<CryptoHash, 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: 'a: grovedb/src/batch/mod.rs#L881
warning: the following explicit lifetimes could be elided: 'a --> grovedb/src/batch/mod.rs:881:47 | 881 | fn get_and_deserialize_referenced_element<'a>( | ^^ 882 | &'a mut self, | ^^ | = 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 | 881 ~ fn get_and_deserialize_referenced_element( 882 ~ &mut self, |
this function has too many arguments (8/7): grovedb/src/batch/mod.rs#L753
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:753:5 | 753 | / fn process_reference<'a, G, SR>( 754 | | &'a mut self, 755 | | qualified_path: &[Vec<u8>], 756 | | ops_by_qualified_paths: &'a BTreeMap<Vec<Vec<u8>>, GroveOp>, ... | 761 | | grove_version: &GroveVersion, 762 | | ) -> CostResult<CryptoHash, Error> | |______________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments
doc list item without indentation: grovedb/src/batch/mod.rs#L740
warning: doc list item without indentation --> grovedb/src/batch/mod.rs:740:9 | 740 | /// missing reference, corrupted data, or invalid batch operation. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation help: indent this line | 740 | /// missing reference, corrupted data, or invalid batch operation. | ++
doc list item without indentation: grovedb/src/batch/mod.rs#L736
warning: doc list item without indentation --> grovedb/src/batch/mod.rs:736:9 | 736 | /// associated cost, if successful. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation help: indent this line | 736 | /// associated cost, if successful. | ++
doc list item without indentation: grovedb/src/batch/mod.rs#L723
warning: doc list item without indentation --> grovedb/src/batch/mod.rs:723:9 | 723 | /// element. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation help: indent this line | 723 | /// element. | +++
doc list item without indentation: grovedb/src/batch/mod.rs#L722
warning: doc list item without indentation --> grovedb/src/batch/mod.rs:722:9 | 722 | /// element and then determines the next step based on the type of the | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation help: indent this line | 722 | /// element and then determines the next step based on the type of the | +++
doc list item without indentation: grovedb/src/batch/mod.rs#L719
warning: doc list item without indentation --> grovedb/src/batch/mod.rs:719:9 | 719 | /// value hash from the reference element. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 719 | /// value hash from the reference element. | +++
this function has too many arguments (8/7): grovedb/src/batch/mod.rs#L689
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:689:5 | 689 | / fn execute_ops_on_path( 690 | | &mut self, 691 | | path: &KeyInfoPath, 692 | | ops_at_path_by_key: BTreeMap<KeyInfo, GroveOp>, ... | 697 | | grove_version: &GroveVersion, 698 | | ) -> CostResult<RootHashKeyAndSum, 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/batch/just_in_time_reference_update.rs#L62
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/batch/just_in_time_reference_update.rs:62:47 | 62 | let val_hash = value_hash(&serialized).unwrap_add_cost(&mut cost); | ^^^^^^^^^^^ help: change this to: `serialized` | = 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
this function has too many arguments (9/7): grovedb/src/batch/just_in_time_reference_update.rs#L28
warning: this function has too many arguments (9/7) --> grovedb/src/batch/just_in_time_reference_update.rs:28:5 | 28 | / pub(crate) fn process_old_element_flags<G, SR>( 29 | | key: &[u8], 30 | | serialized: &[u8], 31 | | new_element: &mut Element, ... | 37 | | grove_version: &GroveVersion, 38 | | ) -> 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
usage of `contains_key` followed by `insert` on a `HashMap`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L273
warning: usage of `contains_key` followed by `insert` on a `HashMap` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:273:13 | 273 | / if !self.cached_merks.contains_key(&base_path) { 274 | | cost_return_on_error_no_add!( 275 | | &cost, 276 | | GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( ... | 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 | 273 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.cached_merks.entry(base_path) { 274 + cost_return_on_error_no_add!( 275 + &cost, 276 + GroveDb::add_average_case_get_merk_at_path::<RocksDbStorage>( 277 + &mut cost, 278 + &base_path, 279 + estimated_layer_info 280 + .estimated_layer_count 281 + .estimated_to_be_empty(), 282 + estimated_layer_info.is_sum_tree, 283 + grove_version 284 + ) 285 + ); 286 + e.insert(estimated_layer_info.is_sum_tree); 287 + } |
unnecessary use of `get(path).is_none()`: grovedb/src/batch/estimated_costs/average_case_costs.rs#L219
warning: unnecessary use of `get(path).is_none()` --> grovedb/src/batch/estimated_costs/average_case_costs.rs:219:30 | 219 | 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
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#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
elided lifetime has a name: grovedb/src/operations/insert/mod.rs#L368
warning: elided lifetime has a name --> grovedb/src/operations/insert/mod.rs:368:26 | 360 | fn add_element_without_transaction<'db, B: AsRef<[u8]>>( | --- lifetime `'db` declared here ... 368 | ) -> CostResult<Merk<PrefixedRocksDbStorageContext>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this elided lifetime gets resolved as `'db`
elided lifetime has a name: grovedb/src/batch/mod.rs#L2227
warning: elided lifetime has a name --> grovedb/src/batch/mod.rs:2227:26 | 2221 | pub fn open_batch_merk_at_path<'a, B: AsRef<[u8]>>( | -- lifetime `'a` declared here ... 2227 | ) -> CostResult<Merk<PrefixedRocksDbStorageContext>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a` | = note: `#[warn(elided_named_lifetimes)]` on by default
the following explicit lifetimes could be elided: 'a: merk/src/visualize.rs#L87
warning: the following explicit lifetimes could be elided: 'a --> merk/src/visualize.rs:87:6 | 87 | impl<'a, T: Visualize, F: Fn(&[u8]) -> T + Copy> Visualize for VisualizableTree<'a, F> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 87 - impl<'a, T: Visualize, F: Fn(&[u8]) -> T + Copy> Visualize for VisualizableTree<'a, F> { 87 + impl<T: Visualize, F: Fn(&[u8]) -> T + Copy> Visualize for VisualizableTree<'_, F> { |
the following explicit lifetimes could be elided: 'a: merk/src/visualize.rs#L68
warning: the following explicit lifetimes could be elided: 'a --> merk/src/visualize.rs:68:6 | 68 | impl<'a, 'db, S: StorageContext<'db>, T: Visualize, F: Fn(&[u8]) -> T + Copy> Visualize | ^^ 69 | for VisualizeableMerk<'a, S, F> | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 68 ~ impl<'db, S: StorageContext<'db>, T: Visualize, F: Fn(&[u8]) -> T + Copy> Visualize 69 ~ for VisualizeableMerk<'_, S, F> |
casting to the same type is unnecessary (`u32` -> `u32`): merk/src/estimated_costs/average_case_costs.rs#L423
warning: casting to the same type is unnecessary (`u32` -> `u32`) --> merk/src/estimated_costs/average_case_costs.rs:423:24 | 423 | cost.seek_count += nodes_updated as u32; | ^^^^^^^^^^^^^^^^^^^^ help: try: `nodes_updated` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
duplicated attribute: merk/src/estimated_costs/average_case_costs.rs#L49
warning: duplicated attribute --> merk/src/estimated_costs/average_case_costs.rs:49:7 | 49 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ | note: first defined here --> merk/src/estimated_costs/average_case_costs.rs:48:7 | 48 | #[cfg(feature = "full")] | ^^^^^^^^^^^^^^^^ help: remove this attribute --> merk/src/estimated_costs/average_case_costs.rs:49:7 | 49 | #[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 (9/7): merk/src/tree/mod.rs#L850
warning: this function has too many arguments (9/7) --> merk/src/tree/mod.rs:850:5 | 850 | / pub fn put_value_with_reference_value_hash_and_value_cost( 851 | | mut self, 852 | | value: Vec<u8>, 853 | | value_hash: CryptoHash, ... | 876 | | >, 877 | | ) -> 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/mod.rs#L792
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:792:5 | 792 | / pub fn put_value_and_reference_value_hash( 793 | | mut self, 794 | | value: Vec<u8>, 795 | | value_hash: CryptoHash, ... | 817 | | >, 818 | | ) -> 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/mod.rs#L736
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:736:5 | 736 | / pub fn put_value_with_fixed_cost( 737 | | mut self, 738 | | value: Vec<u8>, 739 | | value_fixed_cost: u32, ... | 761 | | >, 762 | | ) -> 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/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
the following explicit lifetimes could be elided: 'a: merk/src/tree/iter.rs#L68
warning: the following explicit lifetimes could be elided: 'a --> merk/src/tree/iter.rs:68:6 | 68 | impl<'a> Iterator for Iter<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 68 - impl<'a> Iterator for Iter<'a> { 68 + impl Iterator for Iter<'_> { |
the following explicit lifetimes could be elided: 'a: merk/src/proofs/query/mod.rs#L705
warning: the following explicit lifetimes could be elided: 'a --> merk/src/proofs/query/mod.rs:705:6 | 705 | impl<'a, S> RefWalker<'a, S> | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 705 - impl<'a, S> RefWalker<'a, S> 705 + impl<S> RefWalker<'_, S> |
the following explicit lifetimes could be elided: 'a: merk/src/proofs/query/map.rs#L162
warning: the following explicit lifetimes could be elided: 'a --> merk/src/proofs/query/map.rs:162:6 | 162 | impl<'a> Range<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 162 - impl<'a> Range<'a> { 162 + impl Range<'_> { |
the following explicit lifetimes could be elided: 'a: merk/src/proofs/encoding.rs#L417
warning: the following explicit lifetimes could be elided: 'a --> merk/src/proofs/encoding.rs:417:6 | 417 | impl<'a> Iterator for Decoder<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 417 - impl<'a> Iterator for Decoder<'a> { 417 + impl Iterator for Decoder<'_> { |
unneeded `return` statement: merk/src/proofs/chunk/chunk.rs#L217
warning: unneeded `return` statement --> merk/src/proofs/chunk/chunk.rs:217:5 | 217 | / return Ok(match height_proof_tree.child(LEFT) { 218 | | Some(child) => { 219 | | if !matches!(child.tree.node, Node::KVHash(..)) { 220 | | // todo deal with old chunk restoring error ... | 227 | | None => 1, 228 | | }); | |______^ | = 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` | 217 ~ Ok(match height_proof_tree.child(LEFT) { 218 + Some(child) => { 219 + if !matches!(child.tree.node, Node::KVHash(..)) { 220 + // todo deal with old chunk restoring error 221 + return Err(Error::OldChunkRestoringError( 222 + "Expected left nodes in height proofs to be kvhash nodes".to_string(), 223 + )); 224 + } 225 + verify_height_tree(&child.tree)? + 1 226 + } 227 + None => 1, 228 ~ }) |
the following explicit lifetimes could be elided: 'a: merk/src/proofs/chunk/chunk.rs#L43
warning: the following explicit lifetimes could be elided: 'a --> merk/src/proofs/chunk/chunk.rs:43:6 | 43 | impl<'a, S> RefWalker<'a, S> | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 43 - impl<'a, S> RefWalker<'a, S> 43 + impl<S> RefWalker<'_, S> |
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#L656
warning: this function has too many arguments (8/7) --> merk/src/merk/mod.rs:656:5 | 656 | / fn verify_link( 657 | | &self, 658 | | link: &Link, 659 | | parent_key: &[u8], ... | 664 | | grove_version: &GroveVersion, 665 | | ) { | |_____^ | = 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#L596
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/mod.rs:596:10 | 596 | ) -> (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
the following explicit lifetimes could be elided: 'a: merk/src/merk/mod.rs#L191
warning: the following explicit lifetimes could be elided: 'a --> merk/src/merk/mod.rs:191:6 | 191 | impl<'a, I: RawIterator> KVIterator<'a, I> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 191 - impl<'a, I: RawIterator> KVIterator<'a, I> { 191 + impl<I: RawIterator> KVIterator<'_, I> { |
the following explicit lifetimes could be elided: 's: merk/src/merk/source.rs#L37
warning: the following explicit lifetimes could be elided: 's --> merk/src/merk/source.rs:37:6 | 37 | impl<'s, 'db, S> Fetch for MerkSource<'s, S> | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 37 - impl<'s, 'db, S> Fetch for MerkSource<'s, S> 37 + impl<'db, S> Fetch for MerkSource<'_, S> |
the following explicit lifetimes could be elided: 's: merk/src/merk/source.rs#L28
warning: the following explicit lifetimes could be elided: 's --> merk/src/merk/source.rs:28:6 | 28 | impl<'s, S> Clone for MerkSource<'s, S> { | ^^ ^^ | = 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 | 28 - impl<'s, S> Clone for MerkSource<'s, S> { 28 + impl<S> Clone for MerkSource<'_, S> { |
this function has too many arguments (10/7): merk/src/merk/apply.rs#L321
warning: this function has too many arguments (10/7) --> merk/src/merk/apply.rs:321:5 | 321 | / pub fn apply_unchecked<KB, KA, C, V, T, U, R>( 322 | | &mut self, 323 | | batch: &MerkBatch<KB>, 324 | | aux: &AuxMerkBatch<KA>, ... | 331 | | grove_version: &GroveVersion, 332 | | ) -> 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#L205
warning: this function has too many arguments (10/7) --> merk/src/merk/apply.rs:205:5 | 205 | / pub fn apply_with_costs_just_in_time_value_update<KB, KA>( 206 | | &mut self, 207 | | batch: &MerkBatch<KB>, 208 | | aux: &AuxMerkBatch<KA>, ... | 234 | | grove_version: &GroveVersion, 235 | | ) -> 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#L412
warning: method `attempt_state_recovery` is never used --> merk/src/merk/restore.rs:412:8 | 67 | impl<'db, S: StorageContext<'db>> Restorer<S> { | --------------------------------------------- method in this implementation ... 412 | 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
elided lifetime has a name: merk/src/proofs/query/map.rs#L110
warning: elided lifetime has a name --> merk/src/proofs/query/map.rs:110:72 | 110 | pub fn range<'a, R: RangeBounds<&'a [u8]>>(&'a self, bounds: R) -> Range { | -- lifetime `'a` declared here ^^^^^ this elided lifetime gets resolved as `'a` | = note: `#[warn(elided_named_lifetimes)]` on by default
using `map` over `inspect`: storage/src/rocksdb_storage/storage_context/raw_iterator.rs#L214
warning: using `map` over `inspect` --> storage/src/rocksdb_storage/storage_context/raw_iterator.rs:214:39 | 214 | self.raw_iterator.value().map(|v| { | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect help: try | 214 ~ self.raw_iterator.value().inspect(|v| { 215 ~ cost.storage_loaded_bytes += v.len() as u64; |
using `map` over `inspect`: storage/src/rocksdb_storage/storage_context/raw_iterator.rs#L93
warning: using `map` over `inspect` --> storage/src/rocksdb_storage/storage_context/raw_iterator.rs:93:39 | 93 | self.raw_iterator.value().map(|v| { | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect = note: `#[warn(clippy::manual_inspect)]` on by default help: try | 93 ~ self.raw_iterator.value().inspect(|v| { 94 ~ cost.storage_loaded_bytes += v.len() as u64; |
the following explicit lifetimes could be elided: 'a: storage/src/rocksdb_storage/storage_context/raw_iterator.rs#L49
warning: the following explicit lifetimes could be elided: 'a --> storage/src/rocksdb_storage/storage_context/raw_iterator.rs:49:6 | 49 | impl<'a> RawIterator for PrefixedRocksDbRawIterator<DBRawIteratorWithThreadMode<'a, Db>> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 49 - impl<'a> RawIterator for PrefixedRocksDbRawIterator<DBRawIteratorWithThreadMode<'a, Db>> { 49 + impl RawIterator for PrefixedRocksDbRawIterator<DBRawIteratorWithThreadMode<'_, Db>> { |
the following explicit lifetimes could be elided: 'db: storage/src/rocksdb_storage/storage_context/batch.rs#L36
warning: the following explicit lifetimes could be elided: 'db --> storage/src/rocksdb_storage/storage_context/batch.rs:36:6 | 36 | impl<'db> Batch for PrefixedRocksDbBatch<'db> { | ^^^ ^^^ | = 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 | 36 - impl<'db> Batch for PrefixedRocksDbBatch<'db> { 36 + impl Batch for PrefixedRocksDbBatch<'_> { |
the following explicit lifetimes could be elided: 'b: path/src/subtree_path_iter.rs#L150
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path_iter.rs:150:6 | 150 | impl<'b, B> Clone for CurrentSubtreePathIter<'b, B> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 150 - impl<'b, B> Clone for CurrentSubtreePathIter<'b, B> { 150 + impl<B> Clone for CurrentSubtreePathIter<'_, B> { |
the following explicit lifetimes could be elided: 'b: path/src/subtree_path_iter.rs#L45
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path_iter.rs:45:6 | 45 | impl<'b, B> Clone for SubtreePathIter<'b, B> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 45 - impl<'b, B> Clone for SubtreePathIter<'b, B> { 45 + impl<B> Clone for SubtreePathIter<'_, B> { |
the following explicit lifetimes could be elided: 'b: path/src/subtree_path_builder.rs#L88
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path_builder.rs:88:6 | 88 | impl<'b, B: AsRef<[u8]>> Eq for SubtreePathBuilder<'b, B> {} | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 88 - impl<'b, B: AsRef<[u8]>> Eq for SubtreePathBuilder<'b, B> {} 88 + impl<B: AsRef<[u8]>> Eq for SubtreePathBuilder<'_, B> {} |
the following explicit lifetimes could be elided: 'bl: path/src/subtree_path_builder.rs#L78
warning: the following explicit lifetimes could be elided: 'bl --> path/src/subtree_path_builder.rs:78:6 | 78 | impl<'bl, 'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePathBuilder<'bl, BL> | ^^^ ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 78 - impl<'bl, 'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePathBuilder<'bl, BL> 78 + impl<'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePathBuilder<'_, BL> |
the following explicit lifetimes could be elided: 'bl: path/src/subtree_path_builder.rs#L68
warning: the following explicit lifetimes could be elided: 'bl --> path/src/subtree_path_builder.rs:68:6 | 68 | impl<'bl, 'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePath<'bl, BL> | ^^^ ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 68 - impl<'bl, 'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePath<'bl, BL> 68 + impl<'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePath<'_, BL> |
the following explicit lifetimes could be elided: 'bl: path/src/subtree_path_builder.rs#L58
warning: the following explicit lifetimes could be elided: 'bl --> path/src/subtree_path_builder.rs:58:6 | 58 | impl<'bl, 'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePathBuilder<'bl, BL> | ^^^ ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 58 - impl<'bl, 'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePathBuilder<'bl, BL> 58 + impl<'br, BL, BR> PartialEq<SubtreePathBuilder<'br, BR>> for SubtreePathBuilder<'_, BL> |
the following explicit lifetimes could be elided: 'b: path/src/subtree_path_builder.rs#L51
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path_builder.rs:51:6 | 51 | impl<'b, B: AsRef<[u8]>> Hash for SubtreePathBuilder<'b, B> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 51 - impl<'b, B: AsRef<[u8]>> Hash for SubtreePathBuilder<'b, B> { 51 + impl<B: AsRef<[u8]>> Hash for SubtreePathBuilder<'_, B> { |
doc list item without indentation: costs/src/context.rs#L173
warning: doc list item without indentation --> costs/src/context.rs:173:5 | 173 | /// accumulator; 4. Early termination uses external cost accumulator so previous | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 173 | /// accumulator; 4. Early termination uses external cost accumulator so previous | +++
the following explicit lifetimes could be elided: 'b: path/src/subtree_path.rs#L111
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path.rs:111:6 | 111 | impl<'b, B: AsRef<[u8]>> Hash for SubtreePath<'b, B> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 111 - impl<'b, B: AsRef<[u8]>> Hash for SubtreePath<'b, B> { 111 + impl<B: AsRef<[u8]>> Hash for SubtreePath<'_, B> { |
the following explicit lifetimes could be elided: 'b: path/src/subtree_path.rs#L81
warning: the following explicit lifetimes could be elided: 'b --> path/src/subtree_path.rs:81:6 | 81 | impl<'b, B: AsRef<[u8]>> Eq for SubtreePath<'b, B> {} | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 81 - impl<'b, B: AsRef<[u8]>> Eq for SubtreePath<'b, B> {} 81 + impl<B: AsRef<[u8]>> Eq for SubtreePath<'_, B> {} |
the following explicit lifetimes could be elided: 'bl: path/src/subtree_path.rs#L69
warning: the following explicit lifetimes could be elided: 'bl --> path/src/subtree_path.rs:69:6 | 69 | impl<'bl, 'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePath<'bl, BL> | ^^^ ^^^ | = 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 | 69 - impl<'bl, 'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePath<'bl, BL> 69 + impl<'br, BL, BR> PartialEq<SubtreePath<'br, BR>> for SubtreePath<'_, BL> |
Linting
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
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/