pub struct ChangesTrieConfiguration {
pub digest_interval: u32,
pub digest_levels: u32,
}
Expand description
Tetcore changes trie configuration.
Fields§
§digest_interval: u32
Interval (in blocks) at which level1-digests are created. Digests are not created when this is less or equal to 1.
digest_levels: u32
Maximal number of digest levels in hierarchy. 0 means that digests are not
created at all (even level1 digests). 1 means only level1-digests are created.
2 means that every digest_interval^2 there will be a level2-digest, and so on.
Please ensure that maximum digest interval (i.e. digest_interval^digest_levels)
is within u32
limits. Otherwise you’ll never see digests covering such intervals
&& maximal digests interval will be truncated to the last interval that fits
u32
limits.
Implementations§
Source§impl ChangesTrieConfiguration
impl ChangesTrieConfiguration
Sourcepub fn new(digest_interval: u32, digest_levels: u32) -> Self
pub fn new(digest_interval: u32, digest_levels: u32) -> Self
Create new configuration given digest interval and levels.
Sourcepub fn is_digest_build_enabled(&self) -> bool
pub fn is_digest_build_enabled(&self) -> bool
Is digest build enabled?
Sourcepub fn is_digest_build_required_at_block<Number>(
&self,
zero: Number,
block: Number,
) -> bool
pub fn is_digest_build_required_at_block<Number>( &self, zero: Number, block: Number, ) -> bool
Do we need to build digest at given block?
Sourcepub fn max_digest_interval(&self) -> u32
pub fn max_digest_interval(&self) -> u32
Returns max digest interval. One if digests are not created at all.
Sourcepub fn prev_max_level_digest_block<Number>(
&self,
zero: Number,
block: Number,
) -> Option<Number>
pub fn prev_max_level_digest_block<Number>( &self, zero: Number, block: Number, ) -> Option<Number>
Returns max level digest block number that has been created at block <= passed block number.
Returns None if digests are not created at all.
Sourcepub fn next_max_level_digest_range<Number>(
&self,
zero: Number,
block: Number,
) -> Option<(Number, Number)>
pub fn next_max_level_digest_range<Number>( &self, zero: Number, block: Number, ) -> Option<(Number, Number)>
Returns max level digest blocks range (inclusive) which includes passed block.
Returns None if digests are not created at all. It will return the first max-level digest if block is <= zero.
Trait Implementations§
Source§impl Clone for ChangesTrieConfiguration
impl Clone for ChangesTrieConfiguration
Source§fn clone(&self) -> ChangesTrieConfiguration
fn clone(&self) -> ChangesTrieConfiguration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ChangesTrieConfiguration
impl Debug for ChangesTrieConfiguration
Source§impl Decode for ChangesTrieConfiguration
impl Decode for ChangesTrieConfiguration
Source§impl Default for ChangesTrieConfiguration
impl Default for ChangesTrieConfiguration
Source§fn default() -> ChangesTrieConfiguration
fn default() -> ChangesTrieConfiguration
Source§impl<'de> Deserialize<'de> for ChangesTrieConfiguration
impl<'de> Deserialize<'de> for ChangesTrieConfiguration
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Encode for ChangesTrieConfiguration
impl Encode for ChangesTrieConfiguration
Source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
Source§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
Source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Source§impl MallocSizeOf for ChangesTrieConfiguration
impl MallocSizeOf for ChangesTrieConfiguration
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
T::size_of
is a constant, consider implementing constant_size
as well.Source§impl PartialEq for ChangesTrieConfiguration
impl PartialEq for ChangesTrieConfiguration
Source§impl Serialize for ChangesTrieConfiguration
impl Serialize for ChangesTrieConfiguration
impl EncodeLike for ChangesTrieConfiguration
impl Eq for ChangesTrieConfiguration
impl StructuralPartialEq for ChangesTrieConfiguration
Auto Trait Implementations§
impl Freeze for ChangesTrieConfiguration
impl RefUnwindSafe for ChangesTrieConfiguration
impl Send for ChangesTrieConfiguration
impl Sync for ChangesTrieConfiguration
impl Unpin for ChangesTrieConfiguration
impl UnwindSafe for ChangesTrieConfiguration
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> MallocSizeOfExt for Twhere
T: MallocSizeOf,
impl<T> MallocSizeOfExt for Twhere
T: MallocSizeOf,
Source§fn malloc_size_of(&self) -> usize
fn malloc_size_of(&self) -> usize
Source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.