pub fn next(&mut self) -> Result<Option<()>, failure::Error> {
        match &mut self.current_iterator {
            Some(iterator) => {
                let val = iterator.next();
                if val.is_some() {
                    return Ok(Some(()));
                }
                return self.advance_iteartor();
            }
            None => {
                return self.advance_iteartor();
            }
        }
    }
/// next will advance the iterator for the next entry. if it is none there is
/// no entry to advance.
next will advance the iterator for the next entry. if it is none there is
no entry to advance.
next will advance the iterator for the next entry . if it is none there is no entry to advance .
pub fn next(&mut self) -> Result<Option<()>, failure::Error> {
        match &mut self.current_iterator {
            Some(iterator) => {
                let val = iterator.next();
                if val.is_some() {
                    return Ok(Some(()));
                }
                return self.advance_iteartor();
            }
            None => {
                return self.advance_iteartor();
            }
        }
    }
pub fn next ( & mut self ) -> Result < Option < ( ) > , failure :: Error > { match & mut self . current_iterator { Some ( iterator ) => { let val = iterator . next ( ) ; if val . is_some ( ) { return Ok ( Some ( ( ) ) ) ; } return self . advance_iteartor ( ) ; } None => { return self . advance_iteartor ( ) ; } } }
next will advance the iterator for the next entry.
next will advance the iterator for the next entry .
&mut self