A merkle tree based on Nervos Complete Binary Merkle Tree to support verifiing a leaf is not on a certain tree.
```rust use blake2b_rs::{Blake2b, Blake2bBuilder};
pub struct Blake2bHasher(Blake2b);
const PERSONALIZATION: &[u8] = b"exclusioncbmtree"; impl Default for Blake2bHasher { fn default() -> Self { let blake2b = Blake2bBuilder::new(32).personal(PERSONALIZATION).build(); Blake2bHasher(blake2b) } }
impl Hasher for Blake2bHasher { fn update(&mut self, data: &[u8]) { self.0.update(data); } fn finish(self) -> H256 { let mut hash = [0u8; 32]; self.0.finalize(&mut hash); hash } }
struct MergeBlake2bH256 {}
impl Merge for MergeBlake2bH256 { type Item = H256; fn merge(left: &Self::Item, right: &Self::Item) -> Self::Item { let mut hasher = Blake2bHasher::default(); hasher.update(left); hasher.update(right); hasher.finish() } }
type StrKey = &'static str;
type StrLeaf = SimpleLeaf
let allleaves: Vec
let excludedkeys: Vec