From 65ca3790cc5ce48ebdff2fae2b33d9689dd627cf Mon Sep 17 00:00:00 2001 From: Neal Patel <neal@ineal.me> Date: Mon, 6 Mar 2023 13:33:36 -0800 Subject: [PATCH] Add message.Bytes() to avoid string conversion --- message.go | 9 ++++++++- message_test.go | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/message.go b/message.go index 6fd76918..63dca904 100644 --- a/message.go +++ b/message.go @@ -272,7 +272,6 @@ func ParseMessageWithDataDictionary( } return - } func isHeaderField(tag Tag, dataDict *datadictionary.DataDictionary) bool { @@ -390,6 +389,14 @@ func extractField(parsedFieldBytes *TagValue, buffer []byte) (remBytes []byte, e return buffer[(endIndex + 1):], err } +func (m *Message) Bytes() []byte { + if m.rawMessage != nil { + return m.rawMessage.Bytes() + } + + return m.build() +} + func (m *Message) String() string { if m.rawMessage != nil { return m.rawMessage.String() diff --git a/message_test.go b/message_test.go index 7c5557b9..9bb22375 100644 --- a/message_test.go +++ b/message_test.go @@ -222,12 +222,14 @@ func (s *MessageSuite) TestCopyIntoMessage() { s.Nil(ParseMessage(s.msg, bytes.NewBufferString(newMsgString))) s.True(s.msg.IsMsgTypeOf("A")) s.Equal(s.msg.String(), newMsgString) + s.Equal(string(s.msg.Bytes()), newMsgString) // clear the source buffer also msgBuf.Reset() s.True(dest.IsMsgTypeOf("D")) s.Equal(dest.String(), renderedString) + s.Equal(string(dest.Bytes()), renderedString) } func checkFieldInt(s *MessageSuite, fields FieldMap, tag, expected int) { -- GitLab