code: func appendListItem(v reflect.Value, data []byte, rev uint64, pred storage.SelectionPredicate, codec runtime.Codec, versioner storage.Versioner) error {
  	obj, _, err := codec.Decode(data, nil, reflect.New(v.Type().Elem()).Interface().(runtime.Object))
  	if err != nil {
  		return err
  	}
  	// being unable to set the version does not prevent the object from being extracted
  	versioner.UpdateObject(obj, rev)
  	if matched, err := pred.Matches(obj); err == nil && matched {
  		v.Set(reflect.Append(v, reflect.ValueOf(obj).Elem()))
  	}
  	return nil
  }
docs: // appendListItem decodes and appends the object (if it passes filter) to v, which must be a slice.