restricted_sparse_merkle_tree/
merge.rs1use crate::h256::H256;
2use crate::traits::Hasher;
3
4pub fn merge<H: Hasher + Default>(lhs: &H256, rhs: &H256) -> H256 {
8 if lhs.is_zero() {
9 return *rhs;
10 } else if rhs.is_zero() {
11 return *lhs;
12 }
13 let mut hasher = H::default();
14 hasher.write_h256(lhs);
15 hasher.write_h256(rhs);
16 hasher.finish()
17}
18
19pub fn hash_leaf<H: Hasher + Default>(key: &H256, value: &H256) -> H256 {
22 if value.is_zero() {
23 return H256::zero();
24 }
25 let mut hasher = H::default();
26 hasher.write_h256(key);
27 hasher.write_h256(value);
28 hasher.finish()
29}