rsmt2d_rs/merkle_tree.rs
1use eyre::Result;
2
3/// Merkle Tree representation
4pub trait MerkleTree {
5 /// Add a new leaf to the tree.
6 fn push(&mut self, data: &[u8]) -> Result<()>;
7 /// Return the root hash of the tree.
8 fn root(&self) -> Result<&[u8]>;
9}
10
11pub fn new() -> Box<dyn MerkleTree> {
12 Box::new(MerkleTreeImpl::new())
13}
14
15/// Merkle Tree implementation
16struct MerkleTreeImpl {}
17impl MerkleTreeImpl {
18 fn new() -> Self {
19 Self {}
20 }
21}
22
23impl MerkleTree for MerkleTreeImpl {
24 fn push(&mut self, _data: &[u8]) -> Result<()> {
25 todo!()
26 }
27
28 fn root(&self) -> Result<&[u8]> {
29 todo!()
30 }
31}