code: func (scanner *RwsetScanner) Next() (*EndorserPvtSimulationResults, error) {
  	if !scanner.dbItr.Next() {
  		return nil, nil
  	}
  	dbKey := scanner.dbItr.Key()
  	dbVal := scanner.dbItr.Value()
  	_, blockHeight := splitCompositeKeyOfPvtRWSet(dbKey)
  
  	txPvtRWSet := &rwset.TxPvtReadWriteSet{}
  	if err := proto.Unmarshal(dbVal, txPvtRWSet); err != nil {
  		return nil, err
  	}
  	filteredTxPvtRWSet := trimPvtWSet(txPvtRWSet, scanner.filter)
  
  	return &EndorserPvtSimulationResults{
  		ReceivedAtBlockHeight: blockHeight,
  		PvtSimulationResults:  filteredTxPvtRWSet,
  	}, nil
  }
docs: // Next moves the iterator to the next key/value pair.
  // It returns whether the iterator is exhausted.
  // TODO: Once the related gossip changes are made as per FAB-5096, remove this function