keep at_depth and at_idx consistent wrt ownership
This commit is contained in:
parent
6d53c446f4
commit
ec6d5de741
2 changed files with 6 additions and 6 deletions
|
@ -43,9 +43,9 @@ impl MerklePath {
|
|||
/// The `depth` parameter is defined in terms of `self.depth()`. Merkle paths conventionally do
|
||||
/// not include the root, so the shallowest depth is `1`, and the deepest depth is
|
||||
/// `self.depth()`.
|
||||
pub fn at_depth(&self, depth: NonZero<u8>) -> Option<&RpoDigest> {
|
||||
pub fn at_depth(&self, depth: NonZero<u8>) -> Option<RpoDigest> {
|
||||
let index = u8::checked_sub(self.depth(), depth.get())?;
|
||||
self.nodes.get(index as usize)
|
||||
self.nodes.get(index as usize).copied()
|
||||
}
|
||||
|
||||
/// Returns a reference to the path node at the specified index, or [None] if the index is out
|
||||
|
@ -54,8 +54,8 @@ impl MerklePath {
|
|||
/// The node at index 0 is the deepest part of the path.
|
||||
///
|
||||
/// This is a checked version of using the indexing operator `[]`.
|
||||
pub fn at_idx(&self, index: usize) -> Option<&RpoDigest> {
|
||||
self.nodes.get(index)
|
||||
pub fn at_idx(&self, index: usize) -> Option<RpoDigest> {
|
||||
self.nodes.get(index).copied()
|
||||
}
|
||||
|
||||
/// Returns the depth in which this Merkle path proof is valid.
|
||||
|
|
|
@ -760,7 +760,7 @@ mod tests {
|
|||
|
||||
// Test random access by depth.
|
||||
for depth in path_depth_iter(control_path.depth()) {
|
||||
let &control_node = control_path.at_depth(depth).unwrap();
|
||||
let control_node = control_path.at_depth(depth).unwrap();
|
||||
let sparse_node = sparse_path.at_depth(depth).unwrap();
|
||||
assert_eq!(control_node, sparse_node, "at depth {depth} for entry {i}");
|
||||
}
|
||||
|
@ -769,7 +769,7 @@ mod tests {
|
|||
// Letting index get to `control_path.len()` will test that both sides correctly return
|
||||
// `None` for out of bounds access.
|
||||
for index in 0..=(control_path.len()) {
|
||||
let control_node = control_path.at_idx(index).copied();
|
||||
let control_node = control_path.at_idx(index);
|
||||
let sparse_node = sparse_path.at_idx(index);
|
||||
assert_eq!(control_node, sparse_node);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue