diff --git a/gen/field.go b/gen/field.go index 0f292e0e..b2cce6c8 100644 --- a/gen/field.go +++ b/gen/field.go @@ -28,6 +28,26 @@ type fieldGroupGenerator struct { Fields compile.FieldGroup } +func (f fieldGroupGenerator) Generate(g Generator) error { + if err := f.DefineStruct(g); err != nil { + return err + } + + if err := f.ToWire(g); err != nil { + return err + } + + if err := f.FromWire(g); err != nil { + return err + } + + if err := f.String(g); err != nil { + return err + } + + return nil +} + func (f fieldGroupGenerator) DefineStruct(g Generator) error { return g.DeclareFromTemplate( `type <.Name> struct { diff --git a/gen/struct.go b/gen/struct.go index 2dbb5092..7103924b 100644 --- a/gen/struct.go +++ b/gen/struct.go @@ -63,19 +63,7 @@ func structure(g Generator, spec *compile.StructSpec) error { Fields: spec.Fields, } - if err := fg.DefineStruct(g); err != nil { - return wrapGenerateError(spec.ThriftName(), err) - } - - if err := fg.ToWire(g); err != nil { - return wrapGenerateError(spec.ThriftName(), err) - } - - if err := fg.FromWire(g); err != nil { - return wrapGenerateError(spec.ThriftName(), err) - } - - if err := fg.String(g); err != nil { + if err := fg.Generate(g); err != nil { return wrapGenerateError(spec.ThriftName(), err) }