func (e *encoder) encode(rec *walpb.Record) error { e.mu.Lock() defer e.mu.Unlock() e.crc.Write(rec.Data) rec.Crc = e.crc.Sum32() var ( data []byte err error n int ) if rec.Size() > len(e.buf) { data, err = rec.Marshal() if err != nil { return err } } else { n, err = rec.MarshalTo(e.buf) if err != nil { return err } data = e.buf[:n] } if err := writeInt64(e.bw, int64(len(data)), e.uint64buf); err != nil { return err } _, err = e.bw.Write(data) return err }
func (e *encoder) encode(rec *walpb.Record) error { e.mu.Lock() defer e.mu.Unlock() e.crc.Write(rec.Data) rec.Crc = e.crc.Sum32() var ( data []byte err error n int ) if rec.Size() > len(e.buf) { data, err = rec.Marshal() if err != nil { return err } } else { n, err = rec.MarshalTo(e.buf) if err != nil { return err } data = e.buf[:n] } lenField, padBytes := encodeFrameSize(len(data)) if err = writeUint64(e.bw, lenField, e.uint64buf); err != nil { return err } if padBytes != 0 { data = append(data, make([]byte, padBytes)...) } _, err = e.bw.Write(data) return err }