reflect/protoreflect: add helper methods to FieldDescriptor
Added API:
FieldDescriptor.IsExtension
FieldDescriptor.IsList
FieldDescriptor.MapKey
FieldDescriptor.MapValue
FieldDescriptor.ContainingOneof
FieldDescriptor.ContainingMessage
Deprecated API (to be removed in subsequent CL):
FieldDescriptor.Oneof
FieldDescriptor.Extendee
These methods help cleanup several common usage patterns.
Change-Id: I9a3ffabc2edb2173c536509b22f330f98bba7cf3
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/176977
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/encoding/bench_test.go b/encoding/bench_test.go
index 88f62b7..fdb33d1 100644
--- a/encoding/bench_test.go
+++ b/encoding/bench_test.go
@@ -49,13 +49,12 @@
for i := 0; i < fieldDescs.Len(); i++ {
fd := fieldDescs.Get(i)
num := fd.Number()
- if cardinality := fd.Cardinality(); cardinality == pref.Repeated {
- if !fd.IsMap() {
- setList(knownFields.Get(num).List(), fd, level)
- } else {
- setMap(knownFields.Get(num).Map(), fd, level)
- }
- } else {
+ switch {
+ case fd.IsList():
+ setList(knownFields.Get(num).List(), fd, level)
+ case fd.IsMap():
+ setMap(knownFields.Get(num).Map(), fd, level)
+ default:
setScalarField(knownFields, fd, level)
}
}