[−][src]Struct sc_client::leaves::LeafSet
list of leaf hashes ordered by number (descending). stored in memory for fast access. this allows very fast checking and modification of active leaves.
Methods
impl<H, N> LeafSet<H, N> where
H: Clone + PartialEq + Decode + Encode,
N: Debug + Clone + AtLeast32Bit + Decode + Encode,
[src]
H: Clone + PartialEq + Decode + Encode,
N: Debug + Clone + AtLeast32Bit + Decode + Encode,
pub fn new() -> Self
[src]
Construct a new, blank leaf set.
pub fn read_from_db(
db: &dyn KeyValueDB,
column: u32,
prefix: &[u8]
) -> Result<Self>
[src]
db: &dyn KeyValueDB,
column: u32,
prefix: &[u8]
) -> Result<Self>
Read the leaf list from the DB, using given prefix for keys.
pub fn import(
&mut self,
hash: H,
number: N,
parent_hash: H
) -> Option<ImportDisplaced<H, N>>
[src]
&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.
pub fn finalize_height(&mut self, number: N) -> FinalizationDisplaced<H, N>
[src]
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.
pub fn undo(&mut self) -> Undo<H, N>
[src]
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.
pub fn revert(&mut self, best_hash: H, best_number: N)
[src]
Revert to the given block height by dropping all leaves in the leaf set with a block number higher than the target.
pub fn hashes(&self) -> Vec<H>
[src]
returns an iterator over all hashes in the leaf set ordered by their block number descending.
pub fn count(&self) -> usize
[src]
Number of known leaves
pub fn prepare_transaction(
&mut self,
tx: &mut DBTransaction,
column: u32,
prefix: &[u8]
)
[src]
&mut self,
tx: &mut DBTransaction,
column: u32,
prefix: &[u8]
)
Write the leaf list to the database transaction.
Trait Implementations
impl<H: Clone, N: Clone> Clone for LeafSet<H, N>
[src]
impl<H: Debug, N: Debug> Debug for LeafSet<H, N>
[src]
impl<H: Eq, N: Eq> Eq for LeafSet<H, N>
[src]
impl<H: PartialEq, N: PartialEq> PartialEq<LeafSet<H, N>> for LeafSet<H, N>
[src]
impl<H, N> StructuralEq for LeafSet<H, N>
[src]
impl<H, N> StructuralPartialEq for LeafSet<H, N>
[src]
Auto Trait Implementations
impl<H, N> RefUnwindSafe for LeafSet<H, N> where
H: RefUnwindSafe,
N: RefUnwindSafe,
H: RefUnwindSafe,
N: RefUnwindSafe,
impl<H, N> Send for LeafSet<H, N> where
H: Send,
N: Send,
H: Send,
N: Send,
impl<H, N> Sync for LeafSet<H, N> where
H: Sync,
N: Sync,
H: Sync,
N: Sync,
impl<H, N> Unpin for LeafSet<H, N> where
H: Unpin,
N: Unpin,
H: Unpin,
N: Unpin,
impl<H, N> UnwindSafe for LeafSet<H, N> where
H: RefUnwindSafe + UnwindSafe,
N: RefUnwindSafe + UnwindSafe,
H: RefUnwindSafe + UnwindSafe,
N: RefUnwindSafe + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
[src]
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
[src]
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Self: UniqueSaturatedInto<T>,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
T: Send + Sync + UnwindSafe + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,