59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package codec
 | |
| 
 | |
| import "gopkg.in/yaml.v3"
 | |
| 
 | |
| // 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)
 | |
| }
 | |
| 
 | |
| // MarshalYAML returns frame data
 | |
| func (m *Frame) MarshalYAML() ([]byte, error) {
 | |
| 	return m.Marshal()
 | |
| }
 | |
| 
 | |
| // UnmarshalYAML set frame data
 | |
| func (m *Frame) UnmarshalYAML(n *yaml.Node) error {
 | |
| 	m.Data = []byte(n.Value)
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // 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
 | |
| }
 |