Trait sp_mmr_primitives::LeafDataProvider
source · pub trait LeafDataProvider {
type LeafData: FullLeaf + Decode;
// Required method
fn leaf_data() -> Self::LeafData;
}
Expand description
A provider of the MMR’s leaf data.
Required Associated Types§
Required Methods§
Implementations on Foreign Types§
source§impl<A, B> LeafDataProvider for (A, B)where
(A::LeafData, B::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
impl<A, B> LeafDataProvider for (A, B)where (A::LeafData, B::LeafData): FullLeaf, A: LeafDataProvider, B: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
type LeafData = (<A as LeafDataProvider>::LeafData, <B as LeafDataProvider>::LeafData)
fn leaf_data() -> Self::LeafData
source§impl<A, B, C> LeafDataProvider for (A, B, C)where
(A::LeafData, B::LeafData, C::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
impl<A, B, C> LeafDataProvider for (A, B, C)where (A::LeafData, B::LeafData, C::LeafData): FullLeaf, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
type LeafData = (<A as LeafDataProvider>::LeafData, <B as LeafDataProvider>::LeafData, <C as LeafDataProvider>::LeafData)
fn leaf_data() -> Self::LeafData
source§impl<A, B, C, D> LeafDataProvider for (A, B, C, D)where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
impl<A, B, C, D> LeafDataProvider for (A, B, C, D)where (A::LeafData, B::LeafData, C::LeafData, D::LeafData): FullLeaf, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider, D: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
type LeafData = (<A as LeafDataProvider>::LeafData, <B as LeafDataProvider>::LeafData, <C as LeafDataProvider>::LeafData, <D as LeafDataProvider>::LeafData)
fn leaf_data() -> Self::LeafData
source§impl<A, B, C, D, E> LeafDataProvider for (A, B, C, D, E)where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData, E::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
E: LeafDataProvider,
impl<A, B, C, D, E> LeafDataProvider for (A, B, C, D, E)where (A::LeafData, B::LeafData, C::LeafData, D::LeafData, E::LeafData): FullLeaf, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider, D: LeafDataProvider, E: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
type LeafData = (<A as LeafDataProvider>::LeafData, <B as LeafDataProvider>::LeafData, <C as LeafDataProvider>::LeafData, <D as LeafDataProvider>::LeafData, <E as LeafDataProvider>::LeafData)
fn leaf_data() -> Self::LeafData
source§impl<A> LeafDataProvider for (A,)where
(A::LeafData,): FullLeaf,
A: LeafDataProvider,
impl<A> LeafDataProvider for (A,)where (A::LeafData,): FullLeaf, A: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
Implementors§
source§impl<H, A> LeafDataProvider for Compact<H, (A,)>where
H: Hash,
A: LeafDataProvider,
impl<H, A> LeafDataProvider for Compact<H, (A,)>where H: Hash, A: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
This provides a compact-form encoding for tuples wrapped in Compact.
type LeafData = Compact<H, (DataOrHash<H, <A as LeafDataProvider>::LeafData>,)>
source§impl<H, A, B> LeafDataProvider for Compact<H, (A, B)>where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
impl<H, A, B> LeafDataProvider for Compact<H, (A, B)>where H: Hash, A: LeafDataProvider, B: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
This provides a compact-form encoding for tuples wrapped in Compact.
type LeafData = Compact<H, (DataOrHash<H, <A as LeafDataProvider>::LeafData>, DataOrHash<H, <B as LeafDataProvider>::LeafData>)>
source§impl<H, A, B, C> LeafDataProvider for Compact<H, (A, B, C)>where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
impl<H, A, B, C> LeafDataProvider for Compact<H, (A, B, C)>where H: Hash, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
This provides a compact-form encoding for tuples wrapped in Compact.
type LeafData = Compact<H, (DataOrHash<H, <A as LeafDataProvider>::LeafData>, DataOrHash<H, <B as LeafDataProvider>::LeafData>, DataOrHash<H, <C as LeafDataProvider>::LeafData>)>
source§impl<H, A, B, C, D> LeafDataProvider for Compact<H, (A, B, C, D)>where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
impl<H, A, B, C, D> LeafDataProvider for Compact<H, (A, B, C, D)>where H: Hash, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider, D: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
This provides a compact-form encoding for tuples wrapped in Compact.
type LeafData = Compact<H, (DataOrHash<H, <A as LeafDataProvider>::LeafData>, DataOrHash<H, <B as LeafDataProvider>::LeafData>, DataOrHash<H, <C as LeafDataProvider>::LeafData>, DataOrHash<H, <D as LeafDataProvider>::LeafData>)>
source§impl<H, A, B, C, D, E> LeafDataProvider for Compact<H, (A, B, C, D, E)>where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
E: LeafDataProvider,
impl<H, A, B, C, D, E> LeafDataProvider for Compact<H, (A, B, C, D, E)>where H: Hash, A: LeafDataProvider, B: LeafDataProvider, C: LeafDataProvider, D: LeafDataProvider, E: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
This provides a compact-form encoding for tuples wrapped in Compact.