code: func (dec *mvccEntryDecoder) Decode(iter *Iterator) (bool, error) {
  	ldec := lockDecoder{expectKey: dec.expectKey}
  	ok, err := ldec.Decode(iter)
  	if err != nil {
  		return ok, errors.Trace(err)
  	}
  	if ok {
  		dec.mvccEntry.lock = &ldec.lock
  	}
  	for iter.Valid() {
  		vdec := valueDecoder{expectKey: dec.expectKey}
  		ok, err = vdec.Decode(iter)
  		if err != nil {
  			return ok, errors.Trace(err)
  		}
  		if !ok {
  			break
  		}
  		dec.mvccEntry.values = append(dec.mvccEntry.values, vdec.value)
  	}
  	succ := dec.mvccEntry.lock != nil || len(dec.mvccEntry.values) > 0
  	return succ, nil
  }
docs: // Decode decodes a mvcc entry.