Files
showbridge-go/internal/framer/framer.go
2025-12-08 18:03:09 -06:00

28 lines
535 B
Go

package framer
import (
"fmt"
)
type Framer interface {
Decode([]byte) [][]byte
Encode([]byte) []byte
Clear()
Buffer() []byte
}
func GetFramer(framingType string) (Framer, error) {
switch framingType {
case "CR":
return NewByteSeparatorFramer([]byte{'\r'}), nil
case "LF":
return NewByteSeparatorFramer([]byte{'\n'}), nil
case "CRLF":
return NewByteSeparatorFramer([]byte{'\r', '\n'}), nil
case "SLIP":
return NewSlipFramer(), nil
default:
return nil, fmt.Errorf("unknown framing method: %s", framingType)
}
}