diff --git a/Parser/parser.go b/Parser/parser.go index e4ebd58..80248b5 100644 --- a/Parser/parser.go +++ b/Parser/parser.go @@ -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 } diff --git a/Parser/parser_test.go b/Parser/parser_test.go index 248e2f4..c6cce72 100644 --- a/Parser/parser_test.go +++ b/Parser/parser_test.go @@ -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) } } })