generate: Fix generated Send, Receive functions

This commit is contained in:
Sasha Koshka 2025-10-20 21:19:50 -04:00
parent d4ccdb282e
commit c2ce95021c

View File

@ -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")