46 lines
867 B
Go
46 lines
867 B
Go
package codec
|
|
|
|
// Frame gives us the ability to define raw data to send over the pipes
|
|
type Frame struct {
|
|
Data []byte
|
|
}
|
|
|
|
// NewFrame returns new frame with data
|
|
func NewFrame(data []byte) *Frame {
|
|
return &Frame{Data: data}
|
|
}
|
|
|
|
// MarshalJSON returns frame data
|
|
func (m *Frame) MarshalJSON() ([]byte, error) {
|
|
return m.Marshal()
|
|
}
|
|
|
|
// UnmarshalJSON set frame data
|
|
func (m *Frame) UnmarshalJSON(data []byte) error {
|
|
return m.Unmarshal(data)
|
|
}
|
|
|
|
// ProtoMessage noop func
|
|
func (m *Frame) ProtoMessage() {}
|
|
|
|
// Reset resets frame
|
|
func (m *Frame) Reset() {
|
|
*m = Frame{}
|
|
}
|
|
|
|
// String returns frame as string
|
|
func (m *Frame) String() string {
|
|
return string(m.Data)
|
|
}
|
|
|
|
// Marshal returns frame data
|
|
func (m *Frame) Marshal() ([]byte, error) {
|
|
return m.Data, nil
|
|
}
|
|
|
|
// Unmarshal set frame data
|
|
func (m *Frame) Unmarshal(data []byte) error {
|
|
m.Data = data
|
|
return nil
|
|
}
|