pub trait PathHash: Clone + Send + Sync {
type Hash: Copy + Clone + Debug + Default + PartialEq + Eq + FromBytes + ToBytes + Send + Sync;
// Required method
fn hash_children(&self, children: &[Self::Hash]) -> Result<Self::Hash>;
// Provided methods
fn hash_empty<const ARITY: u8>(&self) -> Result<Self::Hash> { ... }
fn hash_all_children(
&self,
child_nodes: &[Vec<Self::Hash>]
) -> Result<Vec<Self::Hash>> { ... }
}
Expand description
A trait for a Merkle path hash function.
Required Associated Types§
type Hash: Copy + Clone + Debug + Default + PartialEq + Eq + FromBytes + ToBytes + Send + Sync
Required Methods§
sourcefn hash_children(&self, children: &[Self::Hash]) -> Result<Self::Hash>
fn hash_children(&self, children: &[Self::Hash]) -> Result<Self::Hash>
Returns the hash of the given child nodes.
Provided Methods§
sourcefn hash_empty<const ARITY: u8>(&self) -> Result<Self::Hash>
fn hash_empty<const ARITY: u8>(&self) -> Result<Self::Hash>
Returns the empty hash.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> PathHash for BHP<E, NUM_WINDOWS, WINDOW_SIZE>
impl<E: Environment, const NUM_WINDOWS: u8, const WINDOW_SIZE: u8> PathHash for BHP<E, NUM_WINDOWS, WINDOW_SIZE>
source§impl<const TYPE: u8, const VARIANT: usize> PathHash for Keccak<TYPE, VARIANT>
impl<const TYPE: u8, const VARIANT: usize> PathHash for Keccak<TYPE, VARIANT>
source§fn hash_children(&self, children: &[Self::Hash]) -> Result<Self::Hash>
fn hash_children(&self, children: &[Self::Hash]) -> Result<Self::Hash>
Returns the hash of the given child nodes.