[]bytestruct
使用这个就不用每种消息类型都去写编解码了
可以向处理 json 一样处理字节数据
package main
import (
"fmt"
"time"
"github.com/lai323/bytecodec"
)
type Header struct {
SerialNo uint16
Time int64
}
type Packet struct {
Header Header
Phone string `bytecodec:"length:11"` // 使用长度固定为 11 的字符串
MsgLength uint8 `bytecodec:"lengthref:Msg"` // 表示这个字段的值是 Msg 的字节长度
Msg string `bytecodec:"gbk"` // 使用 GBK 编码
}
func main() {
p := Packet{
Header: Header{
SerialNo: 1,
Time: time.Now().Unix(),
},
Phone: "18102169375",
Msg: "你好",
}
b, err := bytecodec.Marshal(p)
fmt.Println(fmt.Sprintf("%#v", b), err)
out := &Packet{}
err = bytecodec.Unmarshal(b, out)
fmt.Println(fmt.Sprintf("%#v", out), err)
}