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 }