func (w *reqResWriter) newFragment(initial bool, checksum Checksum) (*writableFragment, error) {
	if err := w.mex.checkError(); err != nil {
		return nil, w.failed(err)
	}

	message := w.messageForFragment(initial)

	// Create the frame
	frame := w.conn.opts.FramePool.Get()
	frame.Header.ID = w.mex.msgID
	frame.Header.messageType = message.messageType()

	// Write the message into the fragment, reserving flags and checksum bytes
	wbuf := typed.NewWriteBuffer(frame.Payload[:])
	fragment := new(writableFragment)
	fragment.frame = frame
	fragment.flagsRef = wbuf.DeferByte()
	if err := message.write(wbuf); err != nil {
		return nil, err
	}
	wbuf.WriteSingleByte(byte(checksum.TypeCode()))
	fragment.checksumRef = wbuf.DeferBytes(checksum.Size())
	fragment.checksum = checksum
	fragment.contents = wbuf
	return fragment, wbuf.Err()
}
func (w *reqResWriter) newFragment(initial bool, checksum Checksum) (*writableFragment, error) {
	if err := w.mex.checkError(); err != nil {
		return nil, w.failed(err)
	}

	message := w.messageForFragment(initial)

	
	frame := w.conn.opts.FramePool.Get()
	frame.Header.ID = w.mex.msgID
	frame.Header.messageType = message.messageType()

	
	wbuf := typed.NewWriteBuffer(frame.Payload[:])
	fragment := new(writableFragment)
	fragment.frame = frame
	fragment.flagsRef = wbuf.DeferByte()
	if err := message.write(wbuf); err != nil {
		return nil, err
	}
	wbuf.WriteSingleByte(byte(checksum.TypeCode()))
	fragment.checksumRef = wbuf.DeferBytes(checksum.Size())
	fragment.checksum = checksum
	fragment.contents = wbuf
	return fragment, wbuf.Err()
}
func ( w * reqResWriter ) newFragment ( initial bool , checksum Checksum ) ( * writableFragment , error ) { if err := w . mex . checkError ( ) ; err != nil { return nil , w . failed ( err ) } message := w . messageForFragment ( initial ) // Create the frame frame := w . conn . opts . FramePool . Get ( ) frame . Header . ID = w . mex . msgID frame . Header . messageType = message . messageType ( ) // Write the message into the fragment, reserving flags and checksum bytes wbuf := typed . NewWriteBuffer ( frame . Payload [ : ] ) fragment := new ( writableFragment ) fragment . frame = frame fragment . flagsRef = wbuf . DeferByte ( ) if err := message . write ( wbuf ) ; err != nil { return nil , err } wbuf . WriteSingleByte ( byte ( checksum . TypeCode ( ) ) ) fragment . checksumRef = wbuf . DeferBytes ( checksum . Size ( ) ) fragment . checksum = checksum fragment . contents = wbuf return fragment , wbuf . Err ( ) }
// newFragment creates a new fragment for marshaling into
newFragment creates a new fragment for marshaling into