code: func NewUnionIter(dirtyIt Iterator, snapshotIt Iterator, reverse bool) (*UnionIter, error) {
  	it := &UnionIter{
  		dirtyIt:       dirtyIt,
  		snapshotIt:    snapshotIt,
  		dirtyValid:    dirtyIt.Valid(),
  		snapshotValid: snapshotIt.Valid(),
  		reverse:       reverse,
  	}
  	err := it.updateCur()
  	if err != nil {
  		return nil, err
  	}
  	return it, nil
  }
docs: // NewUnionIter returns a union iterator for BufferStore.