Skip to content

Commit 6901b37

Browse files
authored
Merge pull request #106 from francoispqt/update/generator-field-unknown
Update/generator field unknown
2 parents eb6e599 + 82cfd3b commit 6901b37

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

gojay/codegen/struct.go

Lines changed: 4 additions & 3 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 {
@@ -275,12 +276,12 @@ func (s *Struct) generateFieldEncoding(fields []*toolbox.FieldInfo) ([]string, e
275276
templateKey = encodeStructSlice
276277
break main
277278
} else if field.IsSlice {
278-
s.typedFieldDecode(field, field.ComponentType)
279279
templateKey = encodeStructSlice
280280
} else if _, k, ok := s.typedFieldEncode(field, field.Type); ok {
281281
templateKey = k
282282
} else {
283-
templateKey = encodeUnknown
283+
// templateKey = decodeUnknown
284+
return nil, fmt.Errorf("Unknown type %s for field %s", field.Type, field.Name)
284285
}
285286
}
286287
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)