Skip to content

feat: chunk packing #753

feat: chunk packing

feat: chunk packing #753

Triggered via pull request February 24, 2025 14:20
Status Success
Total duration 2m 11s
Artifacts

grovedb.yml

on: pull_request
Tests
2m 2s
Tests
Linting
43s
Linting
Formatting
22s
Formatting
Compilation errors
35s
Compilation errors
Dependencies security audit
11s
Dependencies security audit
Fit to window
Zoom out
Zoom in

Annotations

77 warnings
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/
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/
this function has too many arguments (8/7): grovedb/src/lib.rs#L992
warning: this function has too many arguments (8/7) --> grovedb/src/lib.rs:992:5 | 992 | / fn verify_merk_and_submerks_in_transaction<'db, B: AsRef<[u8]>, S: StorageContext<'db>>( 993 | | &'db self, 994 | | merk: Merk<S>, 995 | | path: &SubtreePath<B>, ... | 1000 | | grove_version: &GroveVersion, 1001 | | ) -> Result<VerificationIssues, 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/replication.rs#L449
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/replication.rs:449:36 | 449 | let decoder = Decoder::new(&chunk); | ^^^^^^ help: change this to: `chunk` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
redundant closure: grovedb/src/replication.rs#L152
warning: redundant closure --> grovedb/src/replication.rs:152:27 | 152 | .then(|| vec![]) | ^^^^^^^^^ help: replace the closure with `Vec::new`: `std::vec::Vec::new` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
you seem to use `.enumerate()` and immediately discard the index: grovedb/src/replication/state_sync_session.rs#L411
warning: you seem to use `.enumerate()` and immediately discard the index --> grovedb/src/replication/state_sync_session.rs:411:72 | 411 | for (_, (current_local_chunk_id, current_local_chunks)) in it_chunk_ids | ________________________________________________________________________^ 412 | | .iter() 413 | | .zip(current_nested_chunk_data.iter()) 414 | | .enumerate() | |____________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index help: remove the `.enumerate()` call | 411 ~ for (current_local_chunk_id, current_local_chunks) in it_chunk_ids 412 + .iter() 413 + .zip(current_nested_chunk_data.iter()) |
you seem to use `.enumerate()` and immediately discard the index: grovedb/src/replication/state_sync_session.rs#L376
warning: you seem to use `.enumerate()` and immediately discard the index --> grovedb/src/replication/state_sync_session.rs:376:64 | 376 | for (_, (iter_global_chunk_id, iter_packed_chunks)) in nested_global_chunk_ids | ________________________________________________________________^ 377 | | .iter() 378 | | .zip(nested_global_chunks.iter()) 379 | | .enumerate() | |________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index = note: `#[warn(clippy::unused_enumerate_index)]` on by default help: remove the `.enumerate()` call | 376 ~ for (iter_global_chunk_id, iter_packed_chunks) in nested_global_chunk_ids 377 + .iter() 378 + .zip(nested_global_chunks.iter()) |
this expression creates a reference which is immediately dereferenced by the compiler: grovedb/src/replication/state_sync_session.rs#L107
warning: this expression creates a reference which is immediately dereferenced by the compiler --> grovedb/src/replication/state_sync_session.rs:107:34 | 107 | match decode_vec_ops(&chunk_data) { | ^^^^^^^^^^^ help: change this to: `chunk_data` | = 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 (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 function has too many arguments (8/7): grovedb/src/operations/insert/mod.rs#L169
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/mod.rs:169:5 | 169 | / fn add_element_on_transaction<'db, B: AsRef<[u8]>>( 170 | | &'db self, 171 | | path: SubtreePath<B>, 172 | | key: &[u8], ... | 177 | | grove_version: &GroveVersion, 178 | | ) -> 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#L113
warning: this function has too many arguments (8/7) --> grovedb/src/operations/insert/mod.rs:113:5 | 113 | / fn insert_on_transaction<'db, 'b, B: AsRef<[u8]>>( 114 | | &self, 115 | | path: SubtreePath<'b, B>, 116 | | key: &[u8], ... | 121 | | grove_version: &GroveVersion, 122 | | ) -> 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#L580
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:580:5 | 580 | / pub fn query_raw( 581 | | &self, 582 | | path_query: &PathQuery, 583 | | allow_cache: bool, ... | 588 | | grove_version: &GroveVersion, 589 | | ) -> 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#L241
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:241:5 | 241 | / pub fn query( 242 | | &self, 243 | | path_query: &PathQuery, 244 | | allow_cache: bool, ... | 249 | | grove_version: &GroveVersion, 250 | | ) -> 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#L119
warning: this function has too many arguments (8/7) --> grovedb/src/operations/get/query.rs:119:5 | 119 | / pub fn query_many_raw( 120 | | &self, 121 | | path_queries: &[&PathQuery], 122 | | allow_cache: bool, ... | 127 | | grove_version: &GroveVersion, 128 | | ) -> 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#L590
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:590:5 | 590 | / fn delete_internal_on_transaction<B: AsRef<[u8]>>( 591 | | &self, 592 | | path: SubtreePath<B>, 593 | | key: &[u8], ... | 605 | | grove_version: &GroveVersion, 606 | | ) -> 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#L467
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/mod.rs:467:5 | 467 | / pub fn delete_operation_for_delete_internal<B: AsRef<[u8]>>( 468 | | &self, 469 | | path: SubtreePath<B>, 470 | | key: &[u8], ... | 475 | | grove_version: &GroveVersion, 476 | | ) -> 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#L198
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/delete_up_tree.rs:198:5 | 198 | / pub fn add_delete_operations_for_delete_up_tree_while_empty<B: AsRef<[u8]>>( 199 | | &self, 200 | | path: SubtreePath<B>, 201 | | key: &[u8], ... | 206 | | grove_version: &GroveVersion, 207 | | ) -> 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#L166
warning: this function has too many arguments (8/7) --> grovedb/src/operations/delete/delete_up_tree.rs:166:5 | 166 | / pub fn delete_operations_for_delete_up_tree_while_empty<B: AsRef<[u8]>>( 167 | | &self, 168 | | path: SubtreePath<B>, 169 | | key: &[u8], ... | 174 | | grove_version: &GroveVersion, 175 | | ) -> 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
this function has too many arguments (12/7): grovedb/src/element/query.rs#L713
warning: this function has too many arguments (12/7) --> grovedb/src/element/query.rs:713:5 | 713 | / fn query_item( 714 | | storage: &RocksDbStorage, 715 | | item: &QueryItem, 716 | | results: &mut Vec<QueryResultElement>, ... | 725 | | grove_version: &GroveVersion, 726 | | ) -> 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 function has too many arguments (8/7): grovedb/src/batch/mod.rs#L2387
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:2387:5 | 2387 | / pub fn apply_partial_batch_with_element_flags_update( 2388 | | &self, 2389 | | ops: Vec<QualifiedGroveDbOp>, 2390 | | batch_apply_options: Option<BatchApplyOptions>, ... | 2409 | | grove_version: &GroveVersion, 2410 | | ) -> 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#L2016
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:2016:5 | 2016 | / fn continue_partial_apply_body<'db, S: StorageContext<'db>>( 2017 | | &self, 2018 | | previous_leftover_operations: Option<OpsByLevelPath>, 2019 | | additional_ops: Vec<QualifiedGroveDbOp>, ... | 2035 | | grove_version: &GroveVersion, 2036 | | ) -> 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#L960
warning: this function has too many arguments (9/7) --> grovedb/src/batch/mod.rs:960:5 | 960 | / fn process_reference_with_hop_count_greater_than_one<'a, G, SR>( 961 | | &'a mut self, 962 | | key: &[u8], 963 | | reference_path: &[Vec<u8>], ... | 969 | | grove_version: &GroveVersion, 970 | | ) -> 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#L742
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:742:5 | 742 | / fn process_reference<'a, G, SR>( 743 | | &'a mut self, 744 | | qualified_path: &[Vec<u8>], 745 | | ops_by_qualified_paths: &'a BTreeMap<Vec<Vec<u8>>, GroveOp>, ... | 750 | | grove_version: &GroveVersion, 751 | | ) -> 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#L679
warning: this function has too many arguments (8/7) --> grovedb/src/batch/mod.rs:679:5 | 679 | / fn execute_ops_on_path( 680 | | &mut self, 681 | | path: &KeyInfoPath, 682 | | ops_at_path_by_key: BTreeMap<KeyInfo, GroveOp>, ... | 687 | | grove_version: &GroveVersion, 688 | | ) -> 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
function `follow_reference_once` is never used: grovedb/src/reference_path.rs#L637
warning: function `follow_reference_once` is never used --> grovedb/src/reference_path.rs:637:15 | 637 | pub(crate) fn follow_reference_once<'db, 'b, 'c, B: AsRef<[u8]>>( | ^^^^^^^^^^^^^^^^^^^^^
function `follow_reference` is never used: grovedb/src/reference_path.rs#L550
warning: function `follow_reference` is never used --> grovedb/src/reference_path.rs:550:15 | 550 | pub(crate) fn follow_reference<'db, 'b, 'c, B: AsRef<[u8]>>( | ^^^^^^^^^^^^^^^^
struct `ResolvedReference` is never constructed: grovedb/src/reference_path.rs#L541
warning: struct `ResolvedReference` is never constructed --> grovedb/src/reference_path.rs:541:19 | 541 | pub(crate) struct ResolvedReference<'db, 'b, 'c, B> { | ^^^^^^^^^^^^^^^^^
method `invert` is never used: grovedb/src/reference_path.rs#L76
warning: method `invert` is never used --> grovedb/src/reference_path.rs:76:19 | 74 | impl ReferencePathType { | ---------------------- method in this implementation 75 | /// Get an inverted reference 76 | pub(crate) fn invert<B: AsRef<[u8]>>(&self, path: SubtreePath<B>, key: &[u8]) -> Option<Self> { | ^^^^^^
method `for_merk` is never used: grovedb/src/merk_cache.rs#L180
warning: method `for_merk` is never used --> grovedb/src/merk_cache.rs:180:19 | 179 | impl<'db> MerkHandle<'db, '_> { | ----------------------------- method in this implementation 180 | pub(crate) fn for_merk<T>(&mut self, f: impl FnOnce(&mut TxMerk<'db>) -> T) -> T { | ^^^^^^^^
struct `MerkHandle` is never constructed: grovedb/src/merk_cache.rs#L174
warning: struct `MerkHandle` is never constructed --> grovedb/src/merk_cache.rs:174:19 | 174 | pub(crate) struct MerkHandle<'db, 'c> { | ^^^^^^^^^^
associated items `new`, `get_merk`, `into_batch`, and `propagate_subtrees` are never used: grovedb/src/merk_cache.rs#L33
warning: associated items `new`, `get_merk`, `into_batch`, and `propagate_subtrees` are never used --> grovedb/src/merk_cache.rs:33:19 | 31 | impl<'db, 'b, B: AsRef<[u8]>> MerkCache<'db, 'b, B> { | --------------------------------------------------- associated items in this implementation 32 | /// Initialize a new `MerkCache` instance 33 | pub(crate) fn new( | ^^^ ... 48 | pub(crate) fn get_merk<'c>( | ^^^^^^^^ ... 129 | pub(crate) fn into_batch(mut self) -> CostResult<Box<StorageBatch>, Error> { | ^^^^^^^^^^ ... 139 | fn propagate_subtrees(&mut self) -> CostResult<(), Error> { | ^^^^^^^^^^^^^^^^^^
struct `MerkCache` is never constructed: grovedb/src/merk_cache.rs#L23
warning: struct `MerkCache` is never constructed --> grovedb/src/merk_cache.rs:23:19 | 23 | pub(crate) struct MerkCache<'db, 'b, B: AsRef<[u8]>> { | ^^^^^^^^^
type alias `CachedMerkEntry` is never used: grovedb/src/merk_cache.rs#L20
warning: type alias `CachedMerkEntry` is never used --> grovedb/src/merk_cache.rs:20:6 | 20 | type CachedMerkEntry<'db> = Box<(Cell<bool>, TxMerk<'db>)>; | ^^^^^^^^^^^^^^^
type alias `TxMerk` is never used: grovedb/src/merk_cache.rs#L16
warning: type alias `TxMerk` is never used --> grovedb/src/merk_cache.rs:16:6 | 16 | type TxMerk<'db> = Merk<PrefixedRocksDbTransactionContext<'db>>; | ^^^^^^
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#L676
warning: method `get_batch_run_mode` is never used --> grovedb/src/batch/mod.rs:676:8 | 673 | trait TreeCache<G, SR> { | --------- method in this trait ... 676 | fn get_batch_run_mode(&self) -> BatchRunMode; | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
this `else { if .. }` block can be collapsed: grovedb/src/replication/state_sync_session.rs#L433
warning: this `else { if .. }` block can be collapsed --> grovedb/src/replication/state_sync_session.rs:433:20 | 433 | } else { | ____________________^ 434 | | if subtree_state_sync.pending_chunks.is_empty() { 435 | | let completed_path = subtree_state_sync.current_path.clone(); ... | 470 | | } | |_____________^ | = 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 | 433 ~ } else if subtree_state_sync.pending_chunks.is_empty() { 434 + let completed_path = subtree_state_sync.current_path.clone(); 435 + 436 + // Subtree is finished. We can save it. 437 + if subtree_state_sync.num_processed_chunks > 0 { 438 + if let Some(prefix_data) = current_prefixes.remove(&chunk_prefix) { 439 + if let Err(err) = prefix_data.restorer.finalize(grove_version) { 440 + return Err(Error::InternalError(format!( 441 + "Unable to finalize Merk: {:?}", 442 + err 443 + ))); 444 + } 445 + } else { 446 + return Err(Error::InternalError(format!( 447 + "Prefix {:?} does not exist in current_prefixes", 448 + chunk_prefix 449 + ))); 450 + } 451 + } 452 + 453 + self.as_mut().processed_prefixes().insert(chunk_prefix); 454 + 455 + let new_subtrees_metadata = 456 + self.discover_new_subtrees_metadata(db, &completed_path, grove_version)?; 457 + 458 + if let Ok(res) = 459 + self.prepare_sync_state_sessions(db, new_subtrees_metadata, grove_version) 460 + { 461 + next_chunk_ids.extend(res); 462 + next_global_chunk_ids.extend(next_chunk_ids); 463 + } else { 464 + return Err(Error::InternalError( 465 + "Unable to discover Subtrees".to_string(), 466 + )); 467 + } 468 + } |
unnecessary parentheses around `if` condition: grovedb/src/replication/state_sync_session.rs#L397
warning: unnecessary parentheses around `if` condition --> grovedb/src/replication/state_sync_session.rs:397:16 | 397 | if (it_chunk_ids.len() != current_nested_chunk_data.len()) { | ^ ^ | help: remove these parentheses | 397 - if (it_chunk_ids.len() != current_nested_chunk_data.len()) { 397 + if it_chunk_ids.len() != current_nested_chunk_data.len() { |
unnecessary parentheses around `if` condition: grovedb/src/replication/state_sync_session.rs#L363
warning: unnecessary parentheses around `if` condition --> grovedb/src/replication/state_sync_session.rs:363:12 | 363 | if (nested_global_chunk_ids.len() != nested_global_chunks.len()) { | ^ ^ | = note: `#[warn(unused_parens)]` on by default help: remove these parentheses | 363 - if (nested_global_chunk_ids.len() != nested_global_chunks.len()) { 363 + if nested_global_chunk_ids.len() != nested_global_chunks.len() { |
unexpected `cfg` condition value: `test_utils`: grovedb/src/element/insert.rs#L481
warning: unexpected `cfg` condition value: `test_utils` --> grovedb/src/element/insert.rs:481:32 | 481 | #[cfg(all(feature = "minimal", feature = "test_utils"))] | ^^^^^^^^^^^^^^^^^^^^^^ | = note: expected values for `feature` are: `axum`, `default`, `estimated_costs`, `full`, `grovedb-costs`, `grovedb-merk`, `grovedb-storage`, `grovedb-visualize`, `grovedbg`, `grovedbg-types`, `integer-encoding`, `intmap`, `itertools`, `minimal`, `proof_debug`, `serde`, `tempfile`, `thiserror`, `tokio`, `tokio-util`, `tower-http`, `verify`, `visualize`, and `zip-extensions` = help: consider adding `test_utils` as a feature in `Cargo.toml` = 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
this function has too many arguments (9/7): merk/src/tree/mod.rs#L943
warning: this function has too many arguments (9/7) --> merk/src/tree/mod.rs:943:5 | 943 | / pub fn put_value_with_reference_value_hash_and_value_cost( 944 | | mut self, 945 | | value: Vec<u8>, 946 | | value_hash: CryptoHash, ... | 969 | | >, 970 | | ) -> 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#L885
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:885:5 | 885 | / pub fn put_value_and_reference_value_hash( 886 | | mut self, 887 | | value: Vec<u8>, 888 | | value_hash: CryptoHash, ... | 910 | | >, 911 | | ) -> 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#L829
warning: this function has too many arguments (8/7) --> merk/src/tree/mod.rs:829:5 | 829 | / pub fn put_value_with_fixed_cost( 830 | | mut self, 831 | | value: Vec<u8>, 832 | | value_fixed_cost: u32, ... | 854 | | >, 855 | | ) -> 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
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#L690
warning: this function has too many arguments (8/7) --> merk/src/merk/mod.rs:690:5 | 690 | / fn verify_link( 691 | | &self, 692 | | link: &Link, 693 | | parent_key: &[u8], ... | 698 | | grove_version: &GroveVersion, 699 | | ) { | |_____^ | = 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#L630
warning: very complex type used. Consider factoring parts into `type` definitions --> merk/src/merk/mod.rs:630:10 | 630 | ) -> (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
called `Option::take()` on a temporary value: merk/src/merk/apply.rs#L347
warning: called `Option::take()` on a temporary value --> merk/src/merk/apply.rs:347:28 | 347 | let maybe_walker = self | ____________________________^ 348 | | .tree 349 | | .take() 350 | | .take() | |___________________^ | = note: `take` creates a temporary value, so calling take() has no effect = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_option_take = note: `#[warn(clippy::needless_option_take)]` on by default
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
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
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
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/