type Message … // ForMessage returns the file descriptor proto containing // the message and the message descriptor proto for the message itself. // The returned proto messages must not be mutated. // // Deprecated: Not all concrete message types satisfy the Message interface. // Use MessageDescriptorProto instead. If possible, the calling code should // be rewritten to use protobuf reflection instead. // See package "google.golang.org/protobuf/reflect/protoreflect" for details. func ForMessage(m Message) (*descriptorpb.FileDescriptorProto, *descriptorpb.DescriptorProto) { … } type rawDesc … var rawDescCache … func deriveRawDescriptor(d protoreflect.Descriptor) ([]byte, []int) { … } // EnumRawDescriptor returns the GZIP'd raw file descriptor representing // the enum and the index path to reach the enum declaration. // The returned slices must not be mutated. func EnumRawDescriptor(e proto.GeneratedEnum) ([]byte, []int) { … } // MessageRawDescriptor returns the GZIP'd raw file descriptor representing // the message and the index path to reach the message declaration. // The returned slices must not be mutated. func MessageRawDescriptor(m proto.GeneratedMessage) ([]byte, []int) { … } var fileDescCache … func deriveFileDescriptor(rawDesc []byte) *descriptorpb.FileDescriptorProto { … } // EnumDescriptorProto returns the file descriptor proto representing // the enum and the enum descriptor proto for the enum itself. // The returned proto messages must not be mutated. func EnumDescriptorProto(e proto.GeneratedEnum) (*descriptorpb.FileDescriptorProto, *descriptorpb.EnumDescriptorProto) { … } // MessageDescriptorProto returns the file descriptor proto representing // the message and the message descriptor proto for the message itself. // The returned proto messages must not be mutated. func MessageDescriptorProto(m proto.GeneratedMessage) (*descriptorpb.FileDescriptorProto, *descriptorpb.DescriptorProto) { … }