Struct sc_client_api::leaves::LeafSet [−][src]
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
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 Database<[u8; 32]>,
column: u32,
prefix: &[u8]
) -> Result<Self>
[src]
db: &dyn Database<[u8; 32]>,
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 Transaction<[u8; 32]>,
column: u32,
prefix: &[u8]
)
[src]
&mut self,
tx: &mut Transaction<[u8; 32]>,
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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub 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,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
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> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
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.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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.
pub 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>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,