in api-generator/main.go [155:202]
func buildFileTypes(file *descriptor.FileDescriptorProto, output *output) error {
syntax, err := buildSyntax(file.Syntax)
if err != nil {
return errors.Wrap(err, "could not determine file syntax")
}
for _, message := range file.MessageType {
err := buildMessageType(file.Package, file.Name, syntax, message, output)
if err != nil {
return errors.Wrapf(err, "could not process message %s", *message.Name)
}
}
for _, enum := range file.EnumType {
err := buildEnumType(file.Package, file.Name, syntax, enum, output)
if err != nil {
return errors.Wrapf(err, "could not process enum %s", *enum.Name)
}
}
for _, service := range file.Service {
err := buildService(file.Package, file.Name, syntax, service, output)
if err != nil {
return errors.Wrapf(err, "could not process service %s", *service.Name)
}
}
extensions := make([]*ptype.Field, 0)
for _, extension := range file.Extension {
extensions, err = buildExtension(file.Package, file.Name, syntax, extension, extensions)
if err != nil {
return errors.Wrapf(err, "could not process extension %s", *extension.Name)
}
}
// TODO not sure how to use the extensions at this point
options := make([]*ptype.Option, 0)
options, err = buildFileOptions(file.Options, options)
if err != nil {
return errors.Wrap(err, "could not process file options")
}
return nil
}