branched-generated-encoder #9
@ -183,11 +183,11 @@ func (this *Generator) generateTypedef(name string, typ Type) (n int, err error)
|
||||
nn, err = this.printf(") {\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.push()
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, tag)")
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, tag)\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateErrorCheck()
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("return n, nil")
|
||||
nn, err = this.iprintf("return n, nil\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.pop()
|
||||
nn, err = this.iprintf("}\n")
|
||||
@ -272,11 +272,11 @@ func (this *Generator) generateMessage(method uint16, message Message) (n int, e
|
||||
nn, err = this.printf(") {\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.push()
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, tag)")
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, tag)\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateErrorCheck()
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("return n, nil")
|
||||
nn, err = this.iprintf("return n, nil\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.pop()
|
||||
nn, err = this.iprintf("}\n")
|
||||
@ -589,11 +589,11 @@ func (this *Generator) generateDecodeBranchCall(typ Type, valueSource, tagSource
|
||||
// generateDecodeBranch generates an aggregate decoder function definition for a
|
||||
// specified type. It assumes that hash == HashType(typ).
|
||||
func (this *Generator) generateDecodeBranch(hash [16]byte, typ Type) (n int, err error) {
|
||||
nn, err := this.iprintf("func %s(this *", this.decodeBranchName(hash))
|
||||
nn, err := this.iprintf("\nfunc %s(this *", this.decodeBranchName(hash))
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateType(typ)
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.printf(" decoder *tape.Decoder, tag tape.Tag) (nn int, err error) \n{")
|
||||
nn, err = this.printf(", decoder *tape.Decoder, tag tape.Tag) (nn int, err error) {\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.push()
|
||||
|
||||
@ -625,7 +625,7 @@ func (this *Generator) generateDecodeBranch(hash [16]byte, typ Type) (n int, err
|
||||
nn, err = this.iprintf("for _ = range %s {\n", lengthVar)
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.push()
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, %s)", elementTagVar)
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, %s)\n", elementTagVar)
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateErrorCheck()
|
||||
n += nn; if err != nil { return n, err }
|
||||
@ -712,7 +712,7 @@ func (this *Generator) generateDecodeBranch(hash [16]byte, typ Type) (n int, err
|
||||
|
||||
// abort field macro
|
||||
abortField := func() (n int, err error) {
|
||||
nn, err = this.iprintf("tape.Skim(decoder, %s)", fieldTagVar)
|
||||
nn, err = this.iprintf("tape.Skim(decoder, %s)\n", fieldTagVar)
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("continue")
|
||||
n += nn; if err != nil { return n, err }
|
||||
@ -722,7 +722,6 @@ func (this *Generator) generateDecodeBranch(hash [16]byte, typ Type) (n int, err
|
||||
// switch on tag
|
||||
nn, err = this.iprintf("switch %s {\n", fieldTagVar)
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.push()
|
||||
for _, key := range slices.Sorted(maps.Keys(typ.Fields)) {
|
||||
field := typ.Fields[key]
|
||||
nn, err = this.iprintf("case %s:\n", fieldTagVar)
|
||||
@ -772,7 +771,7 @@ func (this *Generator) generateDecodeBranch(hash [16]byte, typ Type) (n int, err
|
||||
}
|
||||
|
||||
this.pop()
|
||||
nn, err = this.iprintf("}")
|
||||
nn, err = this.iprintf("}\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
return n, nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user