From a85b0e64e0dcbd0b1e617bd355c599febea3de14 Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Mon, 8 Dec 2025 19:31:42 -0600 Subject: [PATCH] add RAW framer for passthrough --- internal/framer/framer.go | 2 ++ internal/framer/raw.go | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 internal/framer/raw.go diff --git a/internal/framer/framer.go b/internal/framer/framer.go index 91db58b..4bb36d0 100644 --- a/internal/framer/framer.go +++ b/internal/framer/framer.go @@ -21,6 +21,8 @@ func GetFramer(framingType string) (Framer, error) { return NewByteSeparatorFramer([]byte{'\r', '\n'}), nil case "SLIP": return NewSlipFramer(), nil + case "RAW": + return NewRawFramer(), nil default: return nil, fmt.Errorf("unknown framing method: %s", framingType) } diff --git a/internal/framer/raw.go b/internal/framer/raw.go new file mode 100644 index 0000000..6c42974 --- /dev/null +++ b/internal/framer/raw.go @@ -0,0 +1,23 @@ +package framer + +type RawFramer struct{} + +func NewRawFramer() *RawFramer { + return &RawFramer{} +} + +func (rf *RawFramer) Decode(data []byte) [][]byte { + return [][]byte{data} +} + +func (rf *RawFramer) Encode(data []byte) []byte { + return data +} + +func (rf *RawFramer) Clear() { + // NOTE(jwetzell): no internal state to clear +} + +func (rf *RawFramer) Buffer() []byte { + return []byte{} +}