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
 | 
						|
}
 |