Struct sc_client_api::leaves::LeafSet
source · [−]pub struct LeafSet<H, N> { /* private fields */ }
Expand description
list of leaf hashes ordered by number (descending). stored in memory for fast access. this allows very fast checking and modification of active leaves.
Implementations
sourceimpl<H, N> LeafSet<H, N> where
H: Clone + PartialEq + Decode + Encode,
N: Debug + Clone + AtLeast32Bit + Decode + Encode,
impl<H, N> LeafSet<H, N> where
H: Clone + PartialEq + Decode + Encode,
N: Debug + Clone + AtLeast32Bit + Decode + Encode,
sourcepub fn read_from_db(
db: &dyn Database<[u8; 32]>,
column: u32,
prefix: &[u8]
) -> Result<Self>
pub fn read_from_db(
db: &dyn Database<[u8; 32]>,
column: u32,
prefix: &[u8]
) -> Result<Self>
Read the leaf list from the DB, using given prefix for keys.
sourcepub fn import(
&mut self,
hash: H,
number: N,
parent_hash: H
) -> Option<ImportDisplaced<H, N>>
pub fn import(
&mut self,
hash: H,
number: N,
parent_hash: H
) -> Option<ImportDisplaced<H, N>>
update the leaf list on import. returns a displaced leaf if there was one.
sourcepub fn finalize_height(&mut self, number: N) -> FinalizationDisplaced<H, N>
pub fn finalize_height(&mut self, number: N) -> FinalizationDisplaced<H, N>
Note a block height finalized, displacing all leaves with number less than the finalized block’s.
Although it would be more technically correct to also prune out leaves at the same number as the finalized block, but with different hashes, the current behavior is simpler and our assumptions about how finalization works means that those leaves will be pruned soon afterwards anyway.
sourcepub fn undo(&mut self) -> Undo<'_, H, N>
pub fn undo(&mut self) -> Undo<'_, H, N>
Undo all pending operations.
This returns an Undo
struct, where any
Displaced
objects that have returned by previous method calls
should be passed to via the appropriate methods. Otherwise,
the on-disk state may get out of sync with in-memory state.
sourcepub fn revert(&mut self, best_hash: H, best_number: N)
pub fn revert(&mut self, best_hash: H, best_number: N)
Revert to the given block height by dropping all leaves in the leaf set with a block number higher than the target.
sourcepub fn hashes(&self) -> Vec<H>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn hashes(&self) -> Vec<H>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
returns an iterator over all hashes in the leaf set ordered by their block number descending.
sourcepub fn prepare_transaction(
&mut self,
tx: &mut Transaction<[u8; 32]>,
column: u32,
prefix: &[u8]
)
pub fn prepare_transaction(
&mut self,
tx: &mut Transaction<[u8; 32]>,
column: u32,
prefix: &[u8]
)
Write the leaf list to the database transaction.
Trait Implementations
impl<H: Eq, N: Eq> Eq for LeafSet<H, N>
impl<H, N> StructuralEq for LeafSet<H, N>
impl<H, N> StructuralPartialEq for LeafSet<H, N>
Auto Trait Implementations
impl<H, N> RefUnwindSafe for LeafSet<H, N> where
H: RefUnwindSafe,
N: RefUnwindSafe,
impl<H, N> Send for LeafSet<H, N> where
H: Send,
N: Send,
impl<H, N> Sync for LeafSet<H, N> where
H: Sync,
N: Sync,
impl<H, N> Unpin for LeafSet<H, N> where
H: Unpin,
N: Unpin,
impl<H, N> UnwindSafe for LeafSet<H, N> where
H: UnwindSafe + RefUnwindSafe,
N: UnwindSafe + RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
sourcefn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
Convert from a value of T
into an equivalent instance of Option<Self>
. Read more
sourcefn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
Consume self to return Some
equivalent value of Option<T>
. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcepub fn equivalent(&self, key: &K) -> bool
pub fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
sourceimpl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Convert from a value of T
into an equivalent instance of Self
. Read more
sourcefn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of T
. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
sourcepub fn unchecked_into(self) -> T
pub fn unchecked_into(self) -> T
The counterpart to unchecked_from
.
sourceimpl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
sourcepub fn unique_saturated_into(self) -> T
pub fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of T
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn 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>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more