testing/protocmp: switch Enum.Number to be a method

Accessing Number as a method, rather than a field paves the
way to have Enum potentially implement protoreflect.Enum
in the future.

Change-Id: Iebe9c0ec12e067decf2121d12fe2fb1549477b32
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/207077
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/testing/protocmp/xform.go b/testing/protocmp/xform.go
index 5807162..5d88d2f 100644
--- a/testing/protocmp/xform.go
+++ b/testing/protocmp/xform.go
@@ -20,8 +20,8 @@
 // Enum is a dynamic representation of a protocol buffer enum that is
 // suitable for cmp.Equal and cmp.Diff to compare upon.
 type Enum struct {
-	Number protoreflect.EnumNumber
-	ed     protoreflect.EnumDescriptor
+	num protoreflect.EnumNumber
+	ed  protoreflect.EnumDescriptor
 }
 
 // Descriptor returns the enum descriptor.
@@ -29,21 +29,26 @@
 	return e.ed
 }
 
+// Number returns the enum value as an integer.
+func (e Enum) Number() protoreflect.EnumNumber {
+	return e.num
+}
+
 // Equal reports whether e1 and e2 represent the same enum value.
 func (e1 Enum) Equal(e2 Enum) bool {
 	if e1.ed.FullName() != e2.ed.FullName() {
 		return false
 	}
-	return e1.Number == e2.Number
+	return e1.num == e2.num
 }
 
 // String returns the name of the enum value if known (e.g., "ENUM_VALUE"),
 // otherwise it returns the formatted decimal enum number (e.g., "14").
 func (e Enum) String() string {
-	if ev := e.ed.Values().ByNumber(e.Number); ev != nil {
+	if ev := e.ed.Values().ByNumber(e.num); ev != nil {
 		return string(ev.Name())
 	}
-	return strconv.Itoa(int(e.Number))
+	return strconv.Itoa(int(e.num))
 }
 
 const messageTypeKey = "@type"
@@ -187,7 +192,7 @@
 func transformSingular(fd protoreflect.FieldDescriptor, v protoreflect.Value) interface{} {
 	switch fd.Kind() {
 	case protoreflect.EnumKind:
-		return Enum{Number: v.Enum(), ed: fd.Enum()}
+		return Enum{num: v.Enum(), ed: fd.Enum()}
 	case protoreflect.MessageKind, protoreflect.GroupKind:
 		return transformMessage(v.Message())
 	default: