func WriteRecords()

in util.go [23:50]


func WriteRecords(w io.Writer, generated ...jute.RecordWriter) error {
	sendBuf := &bytes.Buffer{}
	enc := jute.NewBinaryEncoder(sendBuf)

	for _, generatedStruct := range generated {
		if err := generatedStruct.Write(enc); err != nil {
			return fmt.Errorf("could not encode struct: %w", err)
		}
	}
	// copy encoded request bytes
	requestBytes := append([]byte(nil), sendBuf.Bytes()...)

	// use encoder to prepend request length to the request bytes
	sendBuf.Reset()

	if err := enc.WriteBuffer(requestBytes); err != nil {
		return fmt.Errorf("could not write buffer: %w", err)
	}
	if err := enc.WriteEnd(); err != nil {
		return fmt.Errorf("could not write buffer: %w", err)
	}

	if _, err := w.Write(sendBuf.Bytes()); err != nil {
		return fmt.Errorf("error writing to io.Writer: %w", err)
	}

	return nil
}