pub fn next_item(&mut self) -> Result<Option<(BuilderData, SliceData)>> {
        while let Some((mut cursor, mut bit_len, key)) = self.pos.pop() {
            let key = cursor.get_label_raw(&mut bit_len, key)?;
            if bit_len == 0 {
                return Ok(Some((key, cursor.remainder()?)))
            }
            for index in 0..2 {
                let mut key = key.clone();
                key.append_bit_bool(index == 0)?;
                let cursor = cursor.next_reader::<T>(1 - index, &mut 0)?;
                self.pos.push((cursor, bit_len - 1, key));
            }
        }
        Ok(None)
    }
// is_leaf and is_fork are not used here
is_leaf and is_fork are not used here
is_leaf and is_fork are not used here
pub fn next_item(&mut self) -> Result<Option<(BuilderData, SliceData)>> {
        while let Some((mut cursor, mut bit_len, key)) = self.pos.pop() {
            let key = cursor.get_label_raw(&mut bit_len, key)?;
            if bit_len == 0 {
                return Ok(Some((key, cursor.remainder()?)))
            }
            for index in 0..2 {
                let mut key = key.clone();
                key.append_bit_bool(index == 0)?;
                let cursor = cursor.next_reader::<T>(1 - index, &mut 0)?;
                self.pos.push((cursor, bit_len - 1, key));
            }
        }
        Ok(None)
    }
pub fn next_item ( & mut self ) -> Result < Option < ( BuilderData , SliceData ) > > { while let Some ( ( mut cursor , mut bit_len , key ) ) = self . pos . pop ( ) { let key = cursor . get_label_raw ( & mut bit_len , key ) ? ; if bit_len == 0 { return Ok ( Some ( ( key , cursor . remainder ( ) ? ) ) ) } for index in 0 .. 2 { let mut key = key . clone ( ) ; key . append_bit_bool ( index == 0 ) ? ; let cursor = cursor . next_reader :: < T > ( 1 - index , & mut 0 ) ? ; self . pos . push ( ( cursor , bit_len - 1 , key ) ) ; } } Ok ( None ) }
is_leaf and is_fork are not used here
is_leaf and is_fork are not used here
&mut self
&mut self