Skip to content

Commit 7580ec0

Browse files
committed
make generator fail if a field cannot be handled
1 parent eb6e599 commit 7580ec0

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

gojay/codegen/struct.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,8 @@ func (s *Struct) generateFieldDecoding(fields []*toolbox.FieldInfo) (string, []s
194194
} else if _, k, ok := s.typedFieldDecode(field, field.Type); ok {
195195
templateKey = k
196196
} else {
197-
templateKey = decodeUnknown
197+
// templateKey = decodeUnknown
198+
return "", nil, fmt.Errorf("Unknown type %s for field %s", field.Type, field.Name)
198199
}
199200
}
200201
if templateKey != -1 {
@@ -280,7 +281,8 @@ func (s *Struct) generateFieldEncoding(fields []*toolbox.FieldInfo) ([]string, e
280281
} else if _, k, ok := s.typedFieldEncode(field, field.Type); ok {
281282
templateKey = k
282283
} else {
283-
templateKey = encodeUnknown
284+
// templateKey = decodeUnknown
285+
return "", nil, fmt.Errorf("Unknown type %s for field %s", field.Type, field.Name)
284286
}
285287
}
286288
if templateKey != -1 {

gojay/codegen/template.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,11 @@ var fieldTemplate = map[int]string{
116116
enc.SQLNull{{.NullType}}Key{{.OmitEmpty}}("{{.Key}}", {{.PointerModifier}}{{.Accessor}})
117117
}{{else}} enc.SQLNull{{.NullType}}Key{{.OmitEmpty}}("{{.Key}}", {{.PointerModifier}}{{.Accessor}}){{end}}`,
118118
decodeUnknown: ` case "{{.Key}}":
119-
//TODO
120-
//dec.Any({{.Accessor}})
121-
return nil
122-
`,
123-
encodeUnknown: `
124-
//TODO
125-
//enc.Any({{.Accessor}})
126-
119+
return dec.Any({{.PointerModifier}}{{.Accessor}})
127120
`,
121+
encodeUnknown: `{{if .IsPointer}} if {{.Accessor}} != nil {
122+
enc.Any({{.Accessor}})
123+
}{{else}}enc.Any({{.Accessor}}){{end}}`,
128124
resetFieldValue: `{{if .ResetDependency}}{{.ResetDependency}}
129125
{{end}} {{.Mutator}} = {{.Reset}}`,
130126
poolInstanceRelease: ` {{.PoolName}}.Put({{.Accessor}})`,

0 commit comments

Comments
 (0)