Exemple #1
0
func flatTypesForFile(pkg *desc.FileDescriptorProto, out *FlatTypes) *FlatTypes {
	if out == nil {
		out = &FlatTypes{
			Files:      make(map[string]*desc.FileDescriptorProto),
			Enums:      make(map[string]*desc.EnumDescriptorProto),
			Messages:   make(map[string]*desc.DescriptorProto),
			Extensions: make(map[string]*desc.FieldDescriptorProto),
			Services:   make(map[string]*desc.ServiceDescriptorProto),
		}
	}

	out.File = pkg
	out.Files[pkg.GetName()] = pkg
	prefix := "." + pkg.GetPackage() + "."
	out.populateMessageTypes(pkg.GetMessageType(), prefix)
	out.populateEnums(pkg.GetEnumType(), prefix)
	out.populateExtensions(pkg.GetExtension(), prefix)
	out.populateServices(pkg.GetService(), prefix)

	return out
}