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§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<A> LeafDataProvider for (A,)
LeafDataProvider implementation for (Tuple, ...)
impl<A> LeafDataProvider for (A,)
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
Source§impl<A, B> LeafDataProvider for (A, B)
LeafDataProvider implementation for (Tuple, ...)
impl<A, B> LeafDataProvider for (A, B)
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
Source§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, ...)
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,
LeafDataProvider implementation for (Tuple, ...)
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,
LeafDataProvider implementation for (Tuple, ...)
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
Implementors§
Source§impl<H, A> LeafDataProvider for Compact<H, (A,)>where
H: Hash,
A: LeafDataProvider,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
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)>
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
impl<H, A, B> LeafDataProvider for Compact<H, (A, B)>
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)>
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
impl<H, A, B, C> LeafDataProvider for Compact<H, (A, B, C)>
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)>
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
impl<H, A, B, C, D> LeafDataProvider for Compact<H, (A, B, C, D)>
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,
LeafDataProvider implementation for Compact<H, (DataOrHash<H, Tuple>, ...)>
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.