本文整理匯總了Golang中github.com/gogo/protobuf/protoc-gen-gogo/descriptor.FileDescriptorProto類的典型用法代碼示例。如果您正苦於以下問題:Golang FileDescriptorProto類的具體用法?Golang FileDescriptorProto怎麽用?Golang FileDescriptorProto使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了FileDescriptorProto類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: GetMap
func GetMap(file *descriptor.FileDescriptorProto, field *descriptor.FieldDescriptorProto) *descriptor.DescriptorProto {
if !field.IsMessage() {
return nil
}
typeName := strings.TrimPrefix(field.GetTypeName(), "."+file.GetPackage()+".")
if strings.Contains(typeName, "Map") && !strings.HasSuffix(typeName, "Entry") {
typeName += "." + CamelCase(field.GetName()) + "Entry"
}
return file.GetMessage(typeName)
}
示例2: GetMap
func GetMap(file *descriptor.FileDescriptorProto, field *descriptor.FieldDescriptorProto) *descriptor.DescriptorProto {
if !field.IsMessage() {
return nil
}
typeName := field.GetTypeName()
if strings.Contains(typeName, "Map") && !strings.HasSuffix(typeName, "Entry") {
typeName += "." + CamelCase(field.GetName()) + "Entry"
}
ts := strings.Split(typeName, ".")
if len(ts) == 1 {
return file.GetMessage(typeName)
}
newTypeName := strings.Join(ts[2:], ".")
return file.GetMessage(newTypeName)
}
示例3: NotGoogleProtobufDescriptorProto
func NotGoogleProtobufDescriptorProto(file *descriptor.FileDescriptorProto) bool {
// can not just check if file.GetName() == "google/protobuf/descriptor.proto" because we do not want to assume compile path
_, fileName := filepath.Split(file.GetName())
return !(file.GetPackage() == "google.protobuf" && fileName == "descriptor.proto")
}
示例4: IsProto3
func IsProto3(file *google_protobuf.FileDescriptorProto) bool {
return file.GetSyntax() == "proto3"
}
示例5: NotInPackageGoogleProtobuf
func NotInPackageGoogleProtobuf(file *descriptor.FileDescriptorProto) bool {
return !strings.HasPrefix(file.GetPackage(), "google.protobuf")
}