diff --git a/generate/generate.go b/generate/generate.go index df3eeca..efa620b 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -317,13 +317,22 @@ func (this *Generator) generateEncodeValue(typ Type, valueSource, tagSource stri if typ.Signed { prefix = "WriteInt" } - nn, err := this.iprintf("nn, err = encoder.%s%d(%s)\n", prefix, typ.Bits, valueSource) + nn, err := this.iprintf("nn, err = encoder.%s%d(", prefix, typ.Bits) + n += nn; if err != nil { return n, err } + nn, err = this.generateType(typ) // TODO: cast like this for + // every type + n += nn; if err != nil { return n, err } + nn, err = this.printf("(%s))\n", valueSource) n += nn; if err != nil { return n, err } nn, err = this.generateErrorCheck() n += nn; if err != nil { return n, err } case TypeFloat: // FP: - nn, err := this.iprintf("nn, err = encoder.WriteFloat%d(%s)\n", typ.Bits, valueSource) + nn, err := this.iprintf("nn, err = encoder.WriteFloat%d(", typ.Bits) + n += nn; if err != nil { return n, err } + nn, err = this.generateType(typ) + n += nn; if err != nil { return n, err } + nn, err = this.iprintf("%s)\n", valueSource) n += nn; if err != nil { return n, err } nn, err = this.generateErrorCheck() n += nn; if err != nil { return n, err }