func (f *Frame) write(msg message) error { var wbuf typed.WriteBuffer wbuf.Wrap(f.Payload[:]) if err := msg.write(&wbuf); err != nil { return err } f.Header.ID = msg.ID() f.Header.messageType = msg.messageType() f.Header.SetPayloadSize(uint16(wbuf.BytesWritten())) return nil }
// WriteOut writes the frame to the given io.Writer func (f *Frame) WriteOut(w io.Writer) error { var wbuf typed.WriteBuffer wbuf.Wrap(f.headerBuffer) if err := f.Header.write(&wbuf); err != nil { return err } fullFrame := f.buffer[:f.Header.FrameSize()] if _, err := w.Write(fullFrame); err != nil { return err } return nil }