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}