generate: Fix generated Send, Receive functions
This commit is contained in:
parent
d4ccdb282e
commit
c2ce95021c
@ -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")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user