influxdb/wal/entry_header.go

37 lines
688 B
Go

package wal
import (
"encoding/binary"
"io"
)
type entryHeader struct {
requestNumber uint32
shardId uint32
length uint32
}
func (self *entryHeader) Write(w io.Writer) (int, error) {
size := 0
for _, n := range []uint32{self.requestNumber, self.shardId, self.length} {
if err := binary.Write(w, binary.BigEndian, n); err != nil {
return size, err
}
size += 4
}
return size, nil
}
func (self *entryHeader) Read(r io.Reader) (int, error) {
size := 0
for _, n := range []*uint32{&self.requestNumber, &self.shardId, &self.length} {
if err := binary.Read(r, binary.BigEndian, n); err != nil {
return size, err
}
size += 4
}
return size, nil
}