From c2ce95021c31059003eaa109321286909350da16 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Mon, 20 Oct 2025 21:19:50 -0400 Subject: [PATCH] generate: Fix generated Send, Receive functions --- generate/generate.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/generate/generate.go b/generate/generate.go index ea2762b..1792b40 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -11,6 +11,7 @@ import "git.tebibyte.media/sashakoshka/hopp/tape" const imports = ` +import "fmt" import "git.tebibyte.media/sashakoshka/hopp" import "git.tebibyte.media/sashakoshka/hopp/tape" ` @@ -41,7 +42,9 @@ func Send(trans hopp.Trans, message Message) (n int, err error) { if err != nil { return n, err } defer writer.Close() encoder := tape.NewEncoder(writer) - return message.Encode(encoder) + n, err = message.Encode(encoder) + if err != nil { return n, err } + return n, encoder.Flush() } // canAssign determines if data from the given source tag can be assigned to @@ -1216,7 +1219,7 @@ func (this *Generator) generateReceive() (n int, err error) { nn, err = this.iprintf("switch method {\n") n += nn; if err != nil { return n, err } for method, message := range this.protocol.Messages { - nn, err = this.iprintf("case %04X:\n", method) + nn, err = this.iprintf("case 0x%04X:\n", method) n += nn; if err != nil { return n, err } this.push() nn, err = this.iprintf( @@ -1234,7 +1237,7 @@ func (this *Generator) generateReceive() (n int, err error) { } nn, err = this.iprint("}\n") n += nn; if err != nil { return n, err } - nn, err = this.iprintf("return nil, n, hopp.ErrUnknownMethod\n") + nn, err = this.iprint("return nil, n, fmt.Errorf(\"%w: M%04X\", hopp.ErrUnknownMethod, method)\n") n += nn; if err != nil { return n, err } this.pop() nn, err = this.iprint("}\n")