pub fn first_sub_witness(witness: &Witness) -> Option<(&Label, &Witness)> {
    match witness {
        Witness::Fork {
            left_tree,
            right_tree,
        } => first_sub_witness(left_tree).or_else(|| first_sub_witness(right_tree)),

        Witness::Node { label, sub_witness } => Some((label, sub_witness)),

        _ => None,
    }
}
/// Returns the leftmost direct labeled sub-witness, if any, and its label.
///
/// This is the equivalent of returning the first not-pruned child of the
/// `LabeledTree::SubTree` that this `Witness` was created from.
Returns the leftmost direct labeled sub-witness, if any, and its label.
This is the equivalent of returning the first not-pruned child of the
`LabeledTree::SubTree` that this `Witness` was created from.
Returns the leftmost direct labeled sub - witness if any and its label . This is the equivalent of returning the first not - pruned child of the ` LabeledTree :: SubTree ` that this ` Witness ` was created from .
pub fn first_sub_witness(witness: &Witness) -> Option<(&Label, &Witness)> {
    match witness {
        Witness::Fork {
            left_tree,
            right_tree,
        } => first_sub_witness(left_tree).or_else(|| first_sub_witness(right_tree)),
        Witness::Node { label, sub_witness } => Some((label, sub_witness)),
        _ => None,
    }
}
pub fn first_sub_witness ( witness : & Witness ) -> Option < ( & Label , & Witness ) > { match witness { Witness :: Fork { left_tree , right_tree , } => first_sub_witness ( left_tree ) . or_else ( | | first_sub_witness ( right_tree ) ) , Witness :: Node { label , sub_witness } => Some ( ( label , sub_witness ) ) , _ => None , } }
Returns the leftmost direct labeled sub-witness, if any, and its label.
Returns the leftmost direct labeled sub - witness if any and its label .
witness
&Witness
witness
&Witness