light_merkle_tree_program/
indexed_merkle_tree.rs1pub trait IndexedMerkleTree {
2 fn get_index(&self) -> u64;
3 fn is_newest(&self) -> bool;
4 fn set_newest(&mut self, newest: bool);
5}
6
7#[macro_export]
8macro_rules! impl_indexed_merkle_tree {
9 ($strct:ident) => {
10 impl $crate::indexed_merkle_tree::IndexedMerkleTree for $strct {
11 fn get_index(&self) -> u64 {
12 self.merkle_tree_nr
13 }
14
15 fn is_newest(&self) -> bool {
16 if self.newest == 0 {
17 return false;
18 }
19 true
20 }
21
22 fn set_newest(&mut self, newest: bool) {
23 match newest {
24 true => self.newest = 1,
25 false => self.newest = 0,
26 }
27 }
28 }
29 };
30}