Currently methods like: ```rust pub fn num_leaves(&self) -> Result<usize, LargeSmtError> { Ok(self.storage.leaf_count()?) } ``` delegate to storage and must return a `Result`. It might make sense to cache values such as `num_leaves` and `num_entries` directly in `LargeSmt`. From [discussion](https://github.com/0xMiden/crypto/pull/438#discussion_r2320870331) in PR #438.