fix tag for nested messages

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2021-08-31 19:40:20 +03:00
parent dd62c380f2
commit ee4d83458f

37
ast.go
View File

@ -15,20 +15,9 @@ import (
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
var ( var astFields = make(map[string]map[string]map[string]*structtag.Tags) // map proto file with proto message ast struct
astFields = make(map[string]map[string]map[string]*structtag.Tags) // map proto file with proto message ast struct
)
func (g *Generator) astGenerate(plugin *protogen.Plugin) error { func (g *Generator) astFill(file *protogen.File, message *protogen.Message) error {
if g.tagPath == "" {
return nil
}
for _, file := range plugin.Files {
if !file.Generate {
continue
}
for _, message := range file.Messages {
for _, field := range message.Fields { for _, field := range message.Fields {
if field.Desc.Options() == nil { if field.Desc.Options() == nil {
continue continue
@ -57,6 +46,28 @@ func (g *Generator) astGenerate(plugin *protogen.Plugin) error {
astFields[fpath] = mp astFields[fpath] = mp
} }
} }
for _, nmessage := range message.Messages {
if err := g.astFill(file, nmessage); err != nil {
return err
}
}
return nil
}
func (g *Generator) astGenerate(plugin *protogen.Plugin) error {
if g.tagPath == "" {
return nil
}
for _, file := range plugin.Files {
if !file.Generate {
continue
}
for _, message := range file.Messages {
if err := g.astFill(file, message); err != nil {
return err
}
} }
} }