Skip to content

Commit 726af34

Browse files
lvan100lianghuan
authored andcommitted
111
1 parent 10e3870 commit 726af34

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

gen/generator/golang/type.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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) {
639634
func 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 {

gen/testdata/manager/go/proto/manager.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/testdata/manager/idl/manager.idl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ type CreateManagerReq {
118118

119119
// Update existing manager
120120
type UpdateManagerReq {
121-
string id (path="id")
121+
string ID (json="name=id", path="id")
122122
string? name
123123
int? age (validate="$ >= MIN_AGE && $ <= MAX_AGE")
124-
bool? vip
124+
bool? vip (json="non-omitempty")
125125
float? salary (validate="$ >= SALARY_MIN && $ <= SALARY_MAX")
126126
string? role
127127
ManagerLevel? level

0 commit comments

Comments
 (0)