From 96809dcac74ae92278821d33b0799dfa88477353 Mon Sep 17 00:00:00 2001 From: Gavin Wood Date: Mon, 30 May 2022 16:07:00 +0100 Subject: [PATCH] Use `loops` rather than `backend` for compatibility. (#11542) * Use `loops` rather than `backend` for compatibility. * Move over other converters --- substrate/primitives/io/src/lib.rs | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/substrate/primitives/io/src/lib.rs b/substrate/primitives/io/src/lib.rs index 0a93191943..89b74dc3c6 100644 --- a/substrate/primitives/io/src/lib.rs +++ b/substrate/primitives/io/src/lib.rs @@ -111,10 +111,12 @@ pub enum KillStorageResult { impl From for KillStorageResult { fn from(r: MultiRemovalResults) -> Self { - match r { - MultiRemovalResults { maybe_cursor: None, backend, .. } => Self::AllRemoved(backend), - MultiRemovalResults { maybe_cursor: Some(..), backend, .. } => - Self::SomeRemaining(backend), + // We use `loops` here rather than `backend` because that's the same as the original + // functionality pre-#11490. This won't matter once we switch to the new host function + // since we won't be using the `KillStorageResult` type in the runtime any more. + match r.maybe_cursor { + None => Self::AllRemoved(r.loops), + Some(..) => Self::SomeRemaining(r.loops), } } } @@ -189,11 +191,7 @@ pub trait Storage { /// backend. #[version(2)] fn clear_prefix(&mut self, prefix: &[u8], limit: Option) -> KillStorageResult { - let r = Externalities::clear_prefix(*self, prefix, limit, None); - match r.maybe_cursor { - None => KillStorageResult::AllRemoved(r.loops), - Some(_) => KillStorageResult::SomeRemaining(r.loops), - } + Externalities::clear_prefix(*self, prefix, limit, None).into() } /// Partially clear the storage of each key-value pair where the key starts with the given @@ -403,11 +401,7 @@ pub trait DefaultChildStorage { #[version(3)] fn storage_kill(&mut self, storage_key: &[u8], limit: Option) -> KillStorageResult { let child_info = ChildInfo::new_default(storage_key); - let r = self.kill_child_storage(&child_info, limit, None); - match r.maybe_cursor { - None => KillStorageResult::AllRemoved(r.loops), - Some(..) => KillStorageResult::SomeRemaining(r.loops), - } + self.kill_child_storage(&child_info, limit, None).into() } /// Clear a child storage key. @@ -452,11 +446,7 @@ pub trait DefaultChildStorage { limit: Option, ) -> KillStorageResult { let child_info = ChildInfo::new_default(storage_key); - let r = self.clear_child_prefix(&child_info, prefix, limit, None); - match r.maybe_cursor { - None => KillStorageResult::AllRemoved(r.loops), - Some(..) => KillStorageResult::SomeRemaining(r.loops), - } + self.clear_child_prefix(&child_info, prefix, limit, None).into() } /// Clear the child storage of each key-value pair where the key starts with the given `prefix`.