[−][src]Struct sp_core::ChangesTrieConfiguration
Substrate 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
impl ChangesTrieConfiguration
[src]
pub fn new(digest_interval: u32, digest_levels: u32) -> Self
[src]
Create new configuration given digest interval and levels.
pub fn is_digest_build_enabled(&self) -> bool
[src]
Is digest build enabled?
pub fn is_digest_build_required_at_block<Number>(
&self,
zero: Number,
block: Number
) -> bool where
Number: From<u32> + PartialEq + Rem<Output = Number> + Sub<Output = Number> + PartialOrd + Zero,
[src]
&self,
zero: Number,
block: Number
) -> bool where
Number: From<u32> + PartialEq + Rem<Output = Number> + Sub<Output = Number> + PartialOrd + Zero,
Do we need to build digest at given block?
pub fn max_digest_interval(&self) -> u32
[src]
Returns max digest interval. One if digests are not created at all.
pub fn prev_max_level_digest_block<Number>(
&self,
zero: Number,
block: Number
) -> Option<Number> where
Number: Clone + From<u32> + PartialOrd + PartialEq + Add<Output = Number> + Sub<Output = Number> + Div<Output = Number> + Mul<Output = Number> + Zero,
[src]
&self,
zero: Number,
block: Number
) -> Option<Number> where
Number: Clone + From<u32> + PartialOrd + PartialEq + Add<Output = Number> + Sub<Output = Number> + Div<Output = Number> + Mul<Output = Number> + Zero,
Returns max level digest block number that has been created at block <= passed block number.
Returns None if digests are not created at all.
pub fn next_max_level_digest_range<Number>(
&self,
zero: Number,
block: Number
) -> Option<(Number, Number)> where
Number: Clone + From<u32> + PartialOrd + PartialEq + Add<Output = Number> + Sub<Output = Number> + Div<Output = Number> + Mul<Output = Number>,
[src]
&self,
zero: Number,
block: Number
) -> Option<(Number, Number)> where
Number: Clone + From<u32> + PartialOrd + PartialEq + Add<Output = Number> + Sub<Output = Number> + Div<Output = Number> + Mul<Output = 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.
pub fn digest_level_at_block<Number>(
&self,
zero: Number,
block: Number
) -> Option<(u32, u32, u32)> where
Number: Clone + From<u32> + PartialEq + Rem<Output = Number> + Sub<Output = Number> + PartialOrd + Zero,
[src]
&self,
zero: Number,
block: Number
) -> Option<(u32, u32, u32)> where
Number: Clone + From<u32> + PartialEq + Rem<Output = Number> + Sub<Output = Number> + PartialOrd + Zero,
Returns Some if digest must be built at given block number. The tuple is: ( digest level digest interval (in blocks) step between blocks we're interested in when digest is built )
Trait Implementations
impl Clone for ChangesTrieConfiguration
[src]
fn clone(&self) -> ChangesTrieConfiguration
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for ChangesTrieConfiguration
[src]
impl Decode for ChangesTrieConfiguration
[src]
impl Default for ChangesTrieConfiguration
[src]
fn default() -> ChangesTrieConfiguration
[src]
impl<'de> Deserialize<'de> for ChangesTrieConfiguration
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Encode for ChangesTrieConfiguration
[src]
fn encode_to<EncOut: Output>(&self, dest: &mut EncOut)
[src]
fn size_hint(&self) -> usize
[src]
fn encode(&self) -> Vec<u8>
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
impl EncodeLike<ChangesTrieConfiguration> for ChangesTrieConfiguration
[src]
impl Eq for ChangesTrieConfiguration
[src]
impl MallocSizeOf for ChangesTrieConfiguration
[src]
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
[src]
impl PartialEq<ChangesTrieConfiguration> for ChangesTrieConfiguration
[src]
fn eq(&self, other: &ChangesTrieConfiguration) -> bool
[src]
fn ne(&self, other: &ChangesTrieConfiguration) -> bool
[src]
impl Serialize for ChangesTrieConfiguration
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for ChangesTrieConfiguration
[src]
impl StructuralPartialEq for ChangesTrieConfiguration
[src]
Auto Trait Implementations
impl RefUnwindSafe for ChangesTrieConfiguration
impl Send for ChangesTrieConfiguration
impl Sync for ChangesTrieConfiguration
impl Unpin for ChangesTrieConfiguration
impl UnwindSafe for ChangesTrieConfiguration
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> Clear for T where
T: InitializableFromZeroed + ?Sized,
[src]
T: InitializableFromZeroed + ?Sized,
impl<S> Codec for S where
S: Encode + Decode,
[src]
S: Encode + Decode,
impl<T, X> Decode for X where
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
[src]
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
impl<T> DecodeAll for T where
T: Decode,
[src]
T: Decode,
impl<T> DecodeLimit for T where
T: Decode,
[src]
T: Decode,
fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T, X> Encode for X where
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
[src]
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
fn size_hint(&self) -> usize
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
fn encode(&self) -> Vec<u8>
[src]
fn encode_to<W>(&self, dest: &mut W) where
W: Output,
[src]
W: Output,
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Box<T>> for T where
T: Encode,
[src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
T: Encode + ToOwned,
[src]
T: Encode + ToOwned,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> From<T> for T
[src]
impl<S> FullCodec for S where
S: Decode + FullEncode,
[src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
S: Encode + EncodeLike<S>,
[src]
S: Encode + EncodeLike<S>,
impl<T> InitializableFromZeroed for T where
T: Default,
[src]
T: Default,
unsafe fn initialize(place: *mut 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) -> &T
[src]
Get a reference to the inner from the outer.
fn from_mut(&mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> KeyedVec for T where
T: Codec,
[src]
T: Codec,
impl<T> MallocSizeOfExt for T where
T: MallocSizeOf,
[src]
T: MallocSizeOf,
fn malloc_size_of(&self) -> usize
[src]
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
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<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,