mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 02:17:58 +00:00
Return number of keys removed when calling storage_kill on child trie (#8166)
* Initial piping of returning amount of keys killed * One more test for `None` limit * forgot to update * fix return value * use version 3 * Update to return `KillOutcome` * Update name to KillChildStorageResult
This commit is contained in:
@@ -391,7 +391,7 @@ where
|
||||
&mut self,
|
||||
child_info: &ChildInfo,
|
||||
limit: Option<u32>,
|
||||
) -> bool {
|
||||
) -> (bool, u32) {
|
||||
trace!(target: "state", "{:04x}: KillChild({})",
|
||||
self.id,
|
||||
HexDisplay::from(&child_info.storage_key()),
|
||||
@@ -399,9 +399,9 @@ where
|
||||
let _guard = guard();
|
||||
self.mark_dirty();
|
||||
self.overlay.clear_child_storage(child_info);
|
||||
let mut num_deleted: u32 = 0;
|
||||
|
||||
if let Some(limit) = limit {
|
||||
let mut num_deleted: u32 = 0;
|
||||
let mut all_deleted = true;
|
||||
self.backend.apply_to_child_keys_while(child_info, |key| {
|
||||
if num_deleted == limit {
|
||||
@@ -417,13 +417,14 @@ where
|
||||
self.overlay.set_child_storage(child_info, key.to_vec(), None);
|
||||
true
|
||||
});
|
||||
all_deleted
|
||||
(all_deleted, num_deleted)
|
||||
} else {
|
||||
self.backend.apply_to_child_keys_while(child_info, |key| {
|
||||
num_deleted = num_deleted.saturating_add(1);
|
||||
self.overlay.set_child_storage(child_info, key.to_vec(), None);
|
||||
true
|
||||
});
|
||||
true
|
||||
(true, num_deleted)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user