From 353db2efa207d1f520be72ff9a45cc332e6a969b Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Sat, 9 Mar 2024 11:22:50 -0700 Subject: [PATCH] incrementalmerkletree: Add `Frontier::tree_size` --- incrementalmerkletree/CHANGELOG.md | 3 +++ incrementalmerkletree/src/frontier.rs | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/incrementalmerkletree/CHANGELOG.md b/incrementalmerkletree/CHANGELOG.md index 3d7e08c0..03010bca 100644 --- a/incrementalmerkletree/CHANGELOG.md +++ b/incrementalmerkletree/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to Rust's notion of ## Unreleased +### Added +- `incrementalmerkletree::Frontier::tree_size` + ## [0.5.0] - 2023-09-08 ### Added diff --git a/incrementalmerkletree/src/frontier.rs b/incrementalmerkletree/src/frontier.rs index 9a28afda..e2342c6b 100644 --- a/incrementalmerkletree/src/frontier.rs +++ b/incrementalmerkletree/src/frontier.rs @@ -225,6 +225,13 @@ impl Frontier { size_of::() + (f.ommers.capacity() + 1) * size_of::() }) } + + /// Returns the size of the Merkle tree that this frontier corresponds to. + pub fn tree_size(&self) -> u64 { + self.frontier + .as_ref() + .map_or(0, |f| u64::from(f.position()) + 1) + } } impl Frontier {