Refactor void handling: add specialized encoder/decoder/type logic, update void-based operations for clarity and correctness

This commit is contained in:
adman
2025-12-27 19:34:27 +01:00
parent 08f265c259
commit 3ddf830d31
9 changed files with 46 additions and 39 deletions
+3 -3
View File
@@ -226,8 +226,8 @@ func (g *Generator) GenerateTypes(prefix string, types Types) error {
AppendDecl(g.File, TypeDecl(tName, e))
args := []NameAndType{{"r", Ident("io.Reader")}}
rets := []NameAndType{{"ret", Ident(tName)}, {"err", Ident("error")}}
decodeFunction := NewFuncWithReceiver("Decode", "_", tName, args, rets)
rets := []NameAndType{{"err", Ident("error")}}
decodeFunction := NewFuncWithReceiver("Decode", "ret", Pointer(Ident(tName)), args, rets)
g.Depth = 0
s, err := g.VisitDecoder(retExpr, v, tName)
if err != nil {
@@ -241,7 +241,7 @@ func (g *Generator) GenerateTypes(prefix string, types Types) error {
args = []NameAndType{{"w", Ident("io.Writer")}}
rets = []NameAndType{{"err", Ident("error")}}
encodeFunction := NewFuncWithReceiver("Encode", "ret", tName, args, rets)
encodeFunction := NewFuncWithReceiver("Encode", "ret", Pointer(Ident(tName)), args, rets)
g.Depth = 0
s, err = g.VisitEncoder(retExpr, v, tName)
if err != nil {