Struct ProofRetainer
pub struct ProofRetainer<K = AddedRemovedKeys> { /* private fields */ }Expand description
Proof retainer is used to store proofs during merkle trie construction.
It is intended to be used within the HashBuilder.
When using the retain_leaf_proof, retain_extension_proof, and retain_branch_proof
methods, it is required that the calls are ordered such that proofs of parent nodes are
retained after their children.
Implementations§
§impl ProofRetainer
impl ProofRetainer
pub fn new(targets: Vec<Nibbles>) -> ProofRetainer
pub fn new(targets: Vec<Nibbles>) -> ProofRetainer
Create new retainer with target nibbles.
§impl<K> ProofRetainer<K>
impl<K> ProofRetainer<K>
pub fn with_added_removed_keys<K2>(
self,
added_removed_keys: Option<K2>,
) -> ProofRetainer<K2>
pub fn with_added_removed_keys<K2>( self, added_removed_keys: Option<K2>, ) -> ProofRetainer<K2>
Configures the retainer to retain proofs for certain nodes which would otherwise fall outside the target set, when those nodes might be required to calculate the state root when keys have been added or removed to the trie.
If None is given then retention of extra proofs is disabled.
§impl<K> ProofRetainer<K>where
K: AsRef<AddedRemovedKeys>,
impl<K> ProofRetainer<K>where
K: AsRef<AddedRemovedKeys>,
pub fn matches(&self, prefix: &Nibbles) -> bool
pub fn matches(&self, prefix: &Nibbles) -> bool
Returns true if the given prefix matches the retainer target.
pub fn into_proof_nodes(self) -> ProofNodes
pub fn into_proof_nodes(self) -> ProofNodes
Returns all collected proofs.
pub fn retain(&mut self, prefix: &Nibbles, proof: &[u8])
👎Deprecated
pub fn retain(&mut self, prefix: &Nibbles, proof: &[u8])
Retain the proof if the key matches any of the targets.
Usage of this method should be replaced with usage of the following methods, each dependent on the node-type whose proof being retained:
retain_empty_root_proofretain_leaf_proofretain_extension_proofretain_branch_proof
pub fn retain_empty_root_proof(&mut self)
pub fn retain_empty_root_proof(&mut self)
Retains a proof for an empty root.
pub fn retain_leaf_proof(&mut self, path: &Nibbles, proof: &[u8])
pub fn retain_leaf_proof(&mut self, path: &Nibbles, proof: &[u8])
Retains a proof for a leaf node.
pub fn retain_extension_proof(
&mut self,
path: &Nibbles,
short_key: &Nibbles,
proof: &[u8],
)
pub fn retain_extension_proof( &mut self, path: &Nibbles, short_key: &Nibbles, proof: &[u8], )
Retains a proof for an extension node.
pub fn retain_branch_proof(
&mut self,
path: &Nibbles,
state_mask: TrieMask,
proof: &[u8],
)
pub fn retain_branch_proof( &mut self, path: &Nibbles, state_mask: TrieMask, proof: &[u8], )
Retains a proof for a branch node.
Trait Implementations§
§impl<K> Clone for ProofRetainer<K>where
K: Clone,
impl<K> Clone for ProofRetainer<K>where
K: Clone,
§fn clone(&self) -> ProofRetainer<K>
fn clone(&self) -> ProofRetainer<K>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<K> Debug for ProofRetainer<K>where
K: Debug,
impl<K> Debug for ProofRetainer<K>where
K: Debug,
§impl<K> Default for ProofRetainer<K>where
K: Default,
impl<K> Default for ProofRetainer<K>where
K: Default,
§fn default() -> ProofRetainer<K>
fn default() -> ProofRetainer<K>
§impl FromIterator<Nibbles> for ProofRetainer
impl FromIterator<Nibbles> for ProofRetainer
§fn from_iter<T>(iter: T) -> ProofRetainerwhere
T: IntoIterator<Item = Nibbles>,
fn from_iter<T>(iter: T) -> ProofRetainerwhere
T: IntoIterator<Item = Nibbles>,
Auto Trait Implementations§
impl<K> Freeze for ProofRetainer<K>
impl<K> RefUnwindSafe for ProofRetainer<K>where
Option<K>: RefUnwindSafe,
impl<K> Send for ProofRetainer<K>
impl<K> Sync for ProofRetainer<K>
impl<K> Unpin for ProofRetainer<K>
impl<K> UnsafeUnpin for ProofRetainer<K>where
Option<K>: UnsafeUnpin,
impl<K> UnwindSafe for ProofRetainer<K>where
Option<K>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.