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]));