From 0097dbeedd1c46de16e1f8620fb13a1cc6e44812 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Tue, 26 Aug 2025 06:17:43 -0400 Subject: [PATCH] generate: cast certain types when encoding --- generate/generate.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 }