@@ -263,20 +263,15 @@ func convertEnums(ctx Context, doc tidl.Document) ([]Enum, error) {
263263 if ! t .OneOf { // skip oneof
264264 continue
265265 }
266- name := t .Name + "Type"
267266 var fields []EnumField
268267 for i , f := range t .Fields {
269- jsonName , err := getJSONName (f .Name , f .Annotations )
270- if err != nil {
271- return nil , err
272- }
273268 fields = append (fields , EnumField {
274- Name : jsonName ,
269+ Name : f . Name ,
275270 Value : int64 (i ),
276271 })
277272 }
278273 ret = append (ret , Enum {
279- Name : name ,
274+ Name : t . Name + "Type" ,
280275 Fields : fields ,
281276 })
282277 }
@@ -639,8 +634,10 @@ func parseBinding(arr []tidl.Annotation) (*Binding, error) {
639634func genFieldTag (fieldName , typeName string , arr []tidl.Annotation , binding * Binding ) (string , error ) {
640635 var tags []string
641636
637+ var jsonTag string
638+ var jsonName = fieldName
639+
642640 // Generate JSON tag
643- jsonTag := fieldName
644641 if a , ok := tidl .GetAnnotation (arr , "json" ); ok {
645642 if a .Value == nil {
646643 return "" , fmt .Errorf ("annotation json value is nil" )
@@ -656,23 +653,27 @@ func genFieldTag(fieldName, typeName string, arr []tidl.Annotation, binding *Bin
656653 omitEmpty := strings .HasPrefix (typeName , "*" )
657654
658655 for s := range strings .SplitSeq (jsonTag , "," ) {
659- switch strings .TrimSpace (s ) {
656+ switch s = strings .TrimSpace (s ); s {
660657 case "omitempty" :
661658 omitEmpty = true
662659 case "non-omitempty" :
663660 omitEmpty = false
664661 case "omitzero" :
665662 omitZero = true
663+ default :
664+ if v , ok := strings .CutPrefix (s , "name=" ); ok {
665+ jsonName = strings .TrimSpace (v )
666+ }
666667 }
667668 }
668669
669670 if omitEmpty {
670- jsonTag += ",omitempty"
671+ jsonName += ",omitempty"
671672 }
672673 if omitZero {
673- jsonTag += ",omitzero"
674+ jsonName += ",omitzero"
674675 }
675- tags = append (tags , fmt .Sprintf ("json:\" %s\" " , jsonTag ))
676+ tags = append (tags , fmt .Sprintf ("json:\" %s\" " , jsonName ))
676677
677678 // Generate binding tag
678679 if binding != nil {
0 commit comments