To be used hand-in-hand with Solidity, that's why it's using keccak256
for hashing!
Example usage
```rust
use simplemerkletree::MerkleTree;
let elements = (0..4)
.map(|el| format!("item-string-{:}", el).into_bytes())
.collect::
let tree = MerkleTree::new(elements.clone()); let a = &elements[0]; let b = &elements[1]; let c = &elements[2]; let d = &elements[3];
let ha = MerkleTree::hash(a); // Part of the proof let hb = MerkleTree::hash(b); let hc = MerkleTree::hash(c); // Part of the proof let hd = MerkleTree::hash(d); // Part of the proof let hab = MerkleTree::combinedhash(&ha, &hb); // Part of the proof let hcd = MerkleTree::combinedhash(&hc, &hd); let habcd = MerkleTree::combinedhash(&hab, &hcd);
let proof = tree.getproof(d).unwrap(); asserteq!(proof.len(), 2);
asserteq!(
vec![hex::encode(hc), hex::encode(h_ab),],
proof
.iter()
.map(|e| hex::encode(e))
.collect::
let root = tree.getroot(); asserteq!(hex::encode(h_abcd), hex::encode(root)); ```