internal/genid: add new package for generated identifiers

The genid package unifies the genname, fieldnum, and detectknown
packages into a single package.

Whenever possible use the generated constants rather than
hard-coded literals. This makes it easier to search the entire
module for special logic that deal with well-known types.

Change-Id: I13beff1f4149444a0c0b9e607ebf759657f000f4
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/235301
Reviewed-by: Herbie Ong <herbie@google.com>
diff --git a/internal/impl/codec_map.go b/internal/impl/codec_map.go
index 35a67c2..44885a7 100644
--- a/internal/impl/codec_map.go
+++ b/internal/impl/codec_map.go
@@ -10,6 +10,7 @@
 	"sort"
 
 	"google.golang.org/protobuf/encoding/protowire"
+	"google.golang.org/protobuf/internal/genid"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
 )
 
@@ -134,7 +135,7 @@
 		b = b[n:]
 		err := errUnknown
 		switch num {
-		case 1:
+		case genid.MapEntry_Key_field_number:
 			var v pref.Value
 			var o unmarshalOutput
 			v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts)
@@ -143,7 +144,7 @@
 			}
 			key = v
 			n = o.n
-		case 2:
+		case genid.MapEntry_Value_field_number:
 			var v pref.Value
 			var o unmarshalOutput
 			v, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts)