Enum pallet_mmr_primitives::DataOrHash[][src]

pub enum DataOrHash<H: Hash, L> {
    Data(L),
    Hash(H::Output),
}

An element representing either full data or it's hash.

See Compact to see how it may be used in practice to reduce the size of proofs in case multiple LeafDataProviders are composed together. This is also used internally by the MMR to differentiate leaf nodes (data) and inner nodes (hashes).

DataOrHash::hash method calculates the hash of this element in it's compact form, so should be used instead of hashing the encoded form (which will always be non-compact).

Variants

Data(L)

Arbitrary data in it's full form.

Hash(H::Output)

A hash of some data.

Implementations

impl<H: Hash, L: FullLeaf> DataOrHash<H, L>[src]

pub fn hash(&self) -> H::Output[src]

Retrieve a hash of this item.

Depending on the node type it's going to either be a contained value for DataOrHash::Hash node, or a hash of SCALE-encoded DataOrHash::Data data.

Trait Implementations

impl<H: Clone + Hash, L: Clone> Clone for DataOrHash<H, L> where
    H::Output: Clone
[src]

impl<H: Hash, L> Debug for DataOrHash<H, L> where
    H: Debug,
    L: Debug
[src]

impl<H: Hash, L: FullLeaf + Decode> Decode for DataOrHash<H, L>[src]

impl<H: Hash, L: FullLeaf> Encode for DataOrHash<H, L>[src]

impl<H: Hash, L> From<L> for DataOrHash<H, L>[src]

impl<H: PartialEq + Hash, L: PartialEq> PartialEq<DataOrHash<H, L>> for DataOrHash<H, L> where
    H::Output: PartialEq
[src]

impl<H: Hash, L> StructuralPartialEq for DataOrHash<H, L>[src]

Auto Trait Implementations

impl<H, L> RefUnwindSafe for DataOrHash<H, L> where
    L: RefUnwindSafe,
    <H as Hash>::Output: RefUnwindSafe
[src]

impl<H, L> Send for DataOrHash<H, L> where
    L: Send
[src]

impl<H, L> Sync for DataOrHash<H, L> where
    L: Sync
[src]

impl<H, L> Unpin for DataOrHash<H, L> where
    L: Unpin,
    <H as Hash>::Output: Unpin
[src]

impl<H, L> UnwindSafe for DataOrHash<H, L> where
    L: UnwindSafe,
    <H as Hash>::Output: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<S> Codec for S where
    S: Encode + Decode
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode
[src]

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode
[src]

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: Encode + ToOwned
[src]

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

impl<T> From<!> for T[src]

impl<T> From<T> for T[src]

impl<T> FullLeaf for T where
    T: Clone + PartialEq<T> + Debug + Encode + Decode
[src]

impl<T> Hashable for T where
    T: Codec
[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

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> KeyedVec for T where
    T: Codec
[src]

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    T: Bounded,
    S: TryInto<T>, 

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,