pub fn merkle_root_and_paths_for_range(
        &self,
        range: RangeTo<usize>,
    ) -> (H256, Vec<Option<H256>>, Vec<Option<H256>>) {
        assert!(range.end > 0, "empty range");
        assert!(range.end <= self.hashes.len(), "range index out of bounds");
        let mut right_path = vec![];
        let root_hash = self.compute_merkle_root_and_path(
            range.end - 1,
            Some(&mut right_path),
            Some(Side::Right),
        );
        (root_hash, self.cache.clone(), right_path)
    }
Returns the root hash and the Merkle proofs for a range of leafs.
The range is 0..length, where `0` is the leftmost untrimmed leaf (i.e. leaf under `self.start_index`).
# Panics
Panics if `range.end` is 0 or greater than the number of leaves in the tree.
core/lib/mini_merkle_tree/src/lib.rs