Function tallytree::navigate::find_closest_siblings [−][src]
pub fn find_closest_siblings(
root: &NodeRef,
reference: &VoteReference
) -> Result<(VoteReferencePair, bool), String>
Expand description
Finds the two nearest sibling vote references of a given reference. The given reference does not need to exist. A boolean representing if it exists or not is returned.
Example:
use tallytree::generate::generate_tree;
use tallytree::navigate::find_closest_siblings;
let tree = generate_tree(vec![
([0xaa; 32], vec![1, 0]),
([0xbb; 32], vec![1, 0]),
([0xdd; 32], vec![0, 1]),
], false).unwrap();
let ((left, right), exists) = find_closest_siblings(&tree, &[0xcc; 32]).unwrap();
assert!(!exists);
assert_eq!(left, Some([0xbb; 32]));
assert_eq!(right, Some([0xdd; 32]));