func (it *Iterator) Next() {
	// Reuse current item
	it.item.wg.Wait() // Just cleaner to wait before pushing to avoid doing ref counting.
	it.waste.push(it.item)

	// Set next item to current
	it.item = it.data.pop()

	for it.iitr.Valid() {
		if it.parseItem() {
			// parseItem calls one extra next.
			// This is used to deal with the complexity of reverse iteration.
			break
		}
	}
}
func (it *Iterator) Next() {
	
	it.item.wg.Wait() 
	it.waste.push(it.item)

	
	it.item = it.data.pop()

	for it.iitr.Valid() {
		if it.parseItem() {
			
			
			break
		}
	}
}
func ( it * Iterator ) Next ( ) { // Reuse current item it . item . wg . Wait ( ) // Just cleaner to wait before pushing to avoid doing ref counting. it . waste . push ( it . item ) // Set next item to current it . item = it . data . pop ( ) for it . iitr . Valid ( ) { if it . parseItem ( ) { // parseItem calls one extra next. // This is used to deal with the complexity of reverse iteration. break } } }
// Next would advance the iterator by one. Always check it.Valid() after a Next()
// to ensure you have access to a valid it.Item().
Next would advance the iterator by one . Always check it . Valid () after a Next () to ensure you have access to a valid it . Item () .