Fixed Parser Interface

This commit is contained in:
simon 2025-05-29 22:24:38 +02:00
parent f7a5f595ab
commit 80a2caf29e
2 changed files with 8 additions and 16 deletions

View File

@ -9,14 +9,6 @@ type ParsedMessage struct {
payloadBytes []byte
}
func (pm *ParsedMessage) Type() byte {
return pm.typeByte
}
func (pm *ParsedMessage) Payload() []byte {
return pm.payloadBytes
}
type ParserConfig struct {
StartByte byte
}
@ -144,12 +136,12 @@ func (pa *Parser) IsMessageAvailable() bool {
return len(pa.messages) > 0
}
func (pa *Parser) GetNextMessage() (pm ParsedMessage, err error) {
func (pa *Parser) GetNextMessage() (typeByte byte, payload []byte, err error) {
if !pa.IsMessageAvailable() {
return ParsedMessage{}, fmt.Errorf("No message available")
return 0x00, nil, fmt.Errorf("No message available")
}
lastMessage := pa.messages[0]
pa.messages = pa.messages[1:]
return lastMessage, nil
return lastMessage.typeByte, lastMessage.payloadBytes, nil
}

View File

@ -90,15 +90,15 @@ func TestParser_ParseBytes(t *testing.T) {
t.Errorf("expected message %d to be available", i)
break
}
msg, err := parser.GetNextMessage()
msgtype, msgpayload, err := parser.GetNextMessage()
if err != nil {
t.Errorf("unexpected error when getting message: %v", err)
}
if msg.Type() != expected.Type() {
t.Errorf("message %d: expected type 0x%02X, got 0x%02X", i, expected.Type(), msg.Type())
if msgtype != expected.typeByte {
t.Errorf("message %d: expected type 0x%02X, got 0x%02X", i, expected.typeByte, msgtype)
}
if !equalBytes(msg.Payload(), expected.Payload()) {
t.Errorf("message %d: expected payload %v, got %v", i, expected.Payload(), msg.Payload())
if !equalBytes(msgpayload, expected.payloadBytes) {
t.Errorf("message %d: expected payload %v, got %v", i, expected.payloadBytes, msgpayload)
}
}
})