fn next_child(
        &mut self,
        parent_id: BId,
    ) -> Option<BId> {
        let bline = &mut self.blines[parent_id];
        if let Some(children) = &bline.children {
            if bline.next_child_idx < children.len() {
                let next_child = children[bline.next_child_idx];
                bline.next_child_idx += 1;
                Some(next_child)
            } else {
                Option::None
            }
        } else {
            unreachable!();
        }
    }
// load_children must have been called before on parent_id
load_children must have been called before on parent_id
load_children must have been called before on parent_id
fn next_child(
        &mut self,
        parent_id: BId,
    ) -> Option<BId> {
        let bline = &mut self.blines[parent_id];
        if let Some(children) = &bline.children {
            if bline.next_child_idx < children.len() {
                let next_child = children[bline.next_child_idx];
                bline.next_child_idx += 1;
                Some(next_child)
            } else {
                Option::None
            }
        } else {
            unreachable!();
        }
    }
fn next_child ( & mut self , parent_id : BId , ) -> Option < BId > { let bline = & mut self . blines [ parent_id ] ; if let Some ( children ) = & bline . children { if bline . next_child_idx < children . len ( ) { let next_child = children [ bline . next_child_idx ] ; bline . next_child_idx += 1 ; Some ( next_child ) } else { Option :: None } } else { unreachable ! ( ) ; } }
load_children must have been called before on parent_id
load_children must have been called before on parent_id
&mut self
parent_id
BId
&mut self
parent_id
BId