blob: 0e2278365f22312e30971bb14f855996ee734b8a [file] [log] [blame]
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package genid
import "google.golang.org/protobuf/reflect/protoreflect"
type ProtoFile int
const (
Unknown_file ProtoFile = iota
Any_file
Timestamp_file
Duration_file
Wrappers_file
Struct_file
FieldMask_file
Api_file
Type_file
SourceContext_file
Empty_file
)
var wellKnownTypes = map[protoreflect.FullName]ProtoFile{
Any_message_fullname: Any_file,
Timestamp_message_fullname: Timestamp_file,
Duration_message_fullname: Duration_file,
BoolValue_message_fullname: Wrappers_file,
Int32Value_message_fullname: Wrappers_file,
Int64Value_message_fullname: Wrappers_file,
UInt32Value_message_fullname: Wrappers_file,
UInt64Value_message_fullname: Wrappers_file,
FloatValue_message_fullname: Wrappers_file,
DoubleValue_message_fullname: Wrappers_file,
BytesValue_message_fullname: Wrappers_file,
StringValue_message_fullname: Wrappers_file,
Struct_message_fullname: Struct_file,
ListValue_message_fullname: Struct_file,
Value_message_fullname: Struct_file,
NullValue_enum_fullname: Struct_file,
FieldMask_message_fullname: FieldMask_file,
Api_message_fullname: Api_file,
Method_message_fullname: Api_file,
Mixin_message_fullname: Api_file,
Syntax_enum_fullname: Type_file,
Type_message_fullname: Type_file,
Field_message_fullname: Type_file,
Field_Kind_enum_fullname: Type_file,
Field_Cardinality_enum_fullname: Type_file,
Enum_message_fullname: Type_file,
EnumValue_message_fullname: Type_file,
Option_message_fullname: Type_file,
SourceContext_message_fullname: SourceContext_file,
Empty_message_fullname: Empty_file,
}
// WhichFile identifies the proto file that an enum or message belongs to.
// It currently only identifies well-known types.
func WhichFile(s protoreflect.FullName) ProtoFile {
return wellKnownTypes[s]
}