Files
showbridge-go/internal/framing/framer.go
2025-12-06 16:02:35 -06:00

27 lines
519 B
Go

package framing
import (
"fmt"
)
type Framer interface {
Decode([]byte) [][]byte
Encode([]byte) []byte
Clear()
}
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)
}
}