in util.go [52:75]
func readUintSlice(r io.Reader) (v []uint64, n int64, err error) {
// read length
var length uint64
err = binary.Read(r, binary.LittleEndian, &length)
if err != nil {
return
}
n += 8
v = make(unpacked, length)
if isLittleEndian {
// ~15x faster
data := unsafeUint64SliceToBytes(v)
var np int
np, err = r.Read(data)
n += int64(np)
} else {
err = binary.Read(r, binary.LittleEndian, v)
if err != nil {
return
}
n += 8 * int64(length)
}
return
}