feat: parse data format func

This commit is contained in:
2025-04-18 13:43:44 +02:00
parent 38f8699bd6
commit f1885875f3

View File

@ -1,5 +1,11 @@
package hsp
import (
"errors"
"fmt"
"strings"
)
const (
H_STATUS = "status"
H_DATA_FORMAT = "data-format"
@ -37,3 +43,30 @@ type DataFormat struct {
Encoding string
}
func ParseDataFormat(format string) (*DataFormat, error) {
parts := strings.Split(format, ":")
if len(parts) != 2 {
if format == "bytes" {
return &DataFormat{
Format: DF_BYTES,
}, nil
}
return nil, errors.New("Invalid data format header")
}
f, ok := DATA_FORMATS[parts[0]]
if !ok {
return nil, errors.New(fmt.Sprintf("Unknown data format: %s", parts[0]))
}
encoding, ok := ENCODINGS[parts[1]]
if !ok {
return nil, errors.New(fmt.Sprintf("Unknown payload encoding: %s", parts[1]))
}
return &DataFormat{
Format: f,
Encoding: encoding,
}, nil
}