本文整理汇总了Golang中github.com/golang/protobuf/protoc-gen-go/descriptor.DescriptorProto.GetNestedType方法的典型用法代码示例。如果您正苦于以下问题:Golang DescriptorProto.GetNestedType方法的具体用法?Golang DescriptorProto.GetNestedType怎么用?Golang DescriptorProto.GetNestedType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/golang/protobuf/protoc-gen-go/descriptor.DescriptorProto
的用法示例。
在下文中一共展示了DescriptorProto.GetNestedType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: lintProtoMessage
func (p *protoBufErrors) lintProtoMessage(
pathIndex int32,
pathType int32,
parentPath []int32,
protoMessage *descriptor.DescriptorProto,
) {
path := append(
parentPath,
pathType,
pathIndex,
)
if !isCamelCase(protoMessage.GetName()) {
p.addError(&protoBufError{
path: path,
errorCode: errorMessageCase,
errorString: protoMessage.GetName(),
})
}
for i, v := range protoMessage.GetField() {
p.lintProtoField(int32(i), path, v)
}
for i, v := range protoMessage.GetEnumType() {
p.lintProtoEnumType(int32(i), pathMessageEnum, path, v)
}
for i, v := range protoMessage.GetNestedType() {
p.lintProtoMessage(int32(i), pathMessageMessage, path, v)
}
}
示例2: fillTreeWithMessage
func fillTreeWithMessage(tree *tree, key string, proto *descriptor.DescriptorProto, loc string, locs map[string]*descriptor.SourceCodeInfo_Location) *message {
key = fmt.Sprintf("%s.%s", key, proto.GetName())
tree.messages[key] = &message{key: key, comment: getComment(loc, locs), DescriptorProto: proto}
// Oneofs
for idx, proto := range proto.GetOneofDecl() {
tree.messages[key].oneofs = append(tree.messages[key].oneofs, &oneof{
index: int32(idx),
OneofDescriptorProto: proto,
})
}
// Fields
for idx, proto := range proto.GetField() {
field := fillTreeWithField(tree, key, proto, fmt.Sprintf("%s,2,%d", loc, idx), locs)
tree.messages[key].fields = append(tree.messages[key].fields, field)
}
// Nested
for idx, proto := range proto.GetNestedType() {
message := fillTreeWithMessage(tree, key, proto, fmt.Sprintf("%s,3,%d", loc, idx), locs)
tree.messages[key].nested = append(tree.messages[key].nested, message)
}
// Enums
for idx, proto := range proto.GetEnumType() {
fillTreeWithEnum(tree, key, proto, fmt.Sprintf("%s,4,%d", loc, idx), locs)
}
return tree.messages[key]
}
示例3: relativelyLookupNestedType
func relativelyLookupNestedType(desc *descriptor.DescriptorProto, name string) (*descriptor.DescriptorProto, bool) {
components := strings.Split(name, ".")
componentLoop:
for _, component := range components {
for _, nested := range desc.GetNestedType() {
if nested.GetName() == component {
desc = nested
continue componentLoop
}
}
glog.Infof("no such nested message %s in %s", component, desc.GetName())
return nil, false
}
return desc, true
}
示例4: GenerateEverything
func (fg *FileGenerator) GenerateEverything(prefix string, inMessage *descriptor.DescriptorProto) error {
newPrefix := prefix + inMessage.GetName() + "_"
var err error
err = fg.GenerateMessageDefinition(prefix, inMessage)
if err != nil {
return err
}
for _, inEnum := range inMessage.GetEnumType() {
err = fg.GenerateEnumDefinition(newPrefix, inEnum)
if err != nil {
return err
}
}
err = fg.GenerateMessageDecoder(prefix, inMessage)
if err != nil {
return err
}
for _, inEnum := range inMessage.GetEnumType() {
err = fg.GenerateEnumDecoder(newPrefix, inEnum)
if err != nil {
return err
}
}
err = fg.GenerateMessageEncoder(prefix, inMessage)
if err != nil {
return err
}
for _, inEnum := range inMessage.GetEnumType() {
err = fg.GenerateEnumEncoder(newPrefix, inEnum)
if err != nil {
return err
}
}
// Nested messages.
for _, nested := range inMessage.GetNestedType() {
fg.GenerateEverything(newPrefix, nested)
}
return nil
}